python函数

一、函数的参数

1、函数的参数从调用的角度来讲可以分为形式参数和实际参数,也可叫形参和实参。

      形参:变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量

     实参:可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值

  2、位置参数:按照从左到右的顺序依次定义的参数

    注:按位置定义的形参必须被传值,多一个不行,少一个不行。

      按位置定义的实参,与形参一一对应

  3、关键字参数:在传入实参时指定形参的变量名(实参在定义时,按照key=value形式定义)

     注意的问题一:位置实参必须在关键字实参的前面。
      注意的问题二:实参的形式既可以用位置实参又可以是关键字实参,但是一个形参不能重复传值。

  4、默认参数:定义函数阶段,就已经为形参赋值,定义阶段有值,调用阶段可以不用传值。

    默认参数需要注意:

         问题一:必须放在位置参数和形参后面
         问题二:默认参数通常要定义成不可变类型
         问题三:默认参数只在定义阶段被赋值一次

  5、可变成参数(收集参数):可变长指的是实参的个数不固定

    按位置定义的可变长度的实参:*  (*定义成的实参是元祖形式)
    按关键字定义的可变长度的实参:** (**定义成的实参是字典形式)
   注:*和**既可以“打包”又可以“解包”。

   注:函数必须遵守先定义后使用的原则,定义阶段是只检测语法不执行代码,执行阶段是执行代码。

二、函数的返回值(return)

  1、return返回值没有的情况下返回None.

  2、return可以返回任意类型的值。

  3、return只能返回一次值,其作用是终止函数的执行。

三、名称空间(即就是存放名字与值得绑定关系)。

  1、名称空间分为三类,分别是内置名称空间,全局名称空间和局部名称空间。

  2、内置名称空间:python解释器自带的名称,默认python解释器启动就会执行。

  3、全局名称空间:文件级别的名字都会存放在全局名称空间中,执行python文件时会产生。

  4、局部名称空间:定义在函数内部的名称,局部名称空间只有在函数调用时才会生效,停止调用就会失效。

  5、三者的加载顺序:内置名称空间》》全局名称空间》》局部名称空间

  6、三者的取值顺序:局部名称空间》》全局名称空间》》内置名称空间

四、函数变量的作用域(全局变量作用域和局部变量作用域)

   1、全局作用域:内置名称空间与全局名称空间的名字属于全局范围,在整个文件的任意位置都能被引用,全局有效(也就是说代码内所有的函数内部都可以访问到全局变量)。
   2、局部作用域:局部名称空间的名字属于局部范围,只在函数内部可以被引用,局部有效

五、函数的嵌套

  1、函数内部创建另一个函数,这种函数叫做内嵌函数或者是嵌套函数。 

  2、内部函数整个作用域都在外部函数之内。
六、函数对象

  1、函数是第一类对象: 指的是函数可以被当做数据传递

  2、函数可以被引用,可以当作函数的参数,可以当作函数的返回值,可以当作容器类型的元素.

  

    

    

最新文章

  1. Linux2.6内核进程调度系列--scheduler_tick()函数2.更新实时进程的时间片
  2. WdatePicker组件不显示
  3. 160905、c3p0详细配置
  4. SelectedRows.CurrentRowSelected 和 DeleteItem
  5. [Hibernate] - Criteria Select
  6. 谈谈java中的WeakReference
  7. 每天进步一点点——负载均衡之DNS域名解析
  8. php 正则校验是否是域名
  9. -_-#gb2312解码
  10. spring-security3.2.5实现中国式安全管理(转)
  11. git命令中带有特殊符号如@
  12. 浅谈Spring的AOP实现-动态代理
  13. 'JetEntityFrameworkProvider' could not be loaded 解决办法
  14. python之函数、参数、作用域、递归
  15. limit
  16. Android Studio 代码导航快捷键总结
  17. Windows 7运行命令大全
  18. 简述项目中优化sql的方法,从哪些方面,sql语句性能如何分析?
  19. session hijacking-php.ini
  20. BZOJ4710: [Jsoi2011]分特产【组合数学+容斥】

热门文章

  1. Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系
  2. windows快捷键之打开网络连接
  3. [Hibernate开发之路](2)Hibernate问题
  4. 在 Linux 系统下使用 PhotoRec & TestDisk 工具来恢复文件
  5. shell 判断问题总结
  6. SpringCloud系列三:将微服务注册到Eureka Server上
  7. Ubuntu16.04下搜狗输入法、Sublime Text 3的安装
  8. iOS swift 给MBProgressHUD添加分类
  9. busybox下inittab中runlevel解析
  10. 国家制定人工智能(AI)发展战略的决策根据