pyhton-函数基础

函数: 对功能或者动作的封装
定义:
def 函数名(参数列表):
函数体(return)
调用:
ret = 函数名(实参列表)
函数名就是变量名.
函数名的命名规则: 变量的命名规则;
1. 数字, 字母, 下划线组成
2. 不能数字开头, 更不能是纯数字
3. 不能用关键字
4. 不要用中文
5. 不要太长
6. 要有意义
7. 区分大小写
8. 建议使用驼峰或者下划线
函数的返回值:函数结束执行之后给调用方的结果
return: 只要函数运行到了return. 函数立即停止执行
1. 不写return. 默认返回None
2. 写了return 后面不跟值
3. return 值 返回一个结果
4. return 值, 值, 值, 值 返回多个结果. 返回的是元组
函数的参数:
1. 形参: 在函数定义的地方的变量
1. 位置参数
2. 默认值参数
2. 实参: 在函数调用的地方给函数传递的具体的值
1. 位置参数
2. 关键字参数
3. 混合参数 先位置. 后关键字
3. 传参: 把实参赋值给形参的过程叫传参
参数进阶
# 1. 位置参数
# 2. 默认值参数
# 3. 动态参数
# 1. *args 位置参数的动态传参. 系统会自动的把所有的位置参数聚合成元组
# 2. **kwargs 关键字的动态传参. 系统会自动把所有的关键字参数聚合成字典
# 3. def func(*args, **kwargs): 无敌传参
# 4. 顺序: 位置参数, *args, 默认值, **kwargs
# 5. 在使用的时候, 可以任意的进行搭配
# 4. 在实参上. *, **表示的打散. 在形参. *,** 表示聚合
# 默认参数陷阱
  # 如果默认参数的值是一个可变数据类型,那么每一次调用函数的时候,如果不传值就公用这个数据类型的资源
1 def fun(k, l = {}):
2     # l.append(1)
3     l[k] = 'v'
4     print(l)
5 
6 fun(1)     #[1]
7 fun(2)     #[1,1]
8 fun(3)     #[1,1,1]
默认参数陷阱
闭包:嵌套函数,内部函数调用外部函数的变量

  闭包作用:
    1. 让一个变量常驻内存,存在于闭包函数的__closure__ 属性中

    2. 保护变量不被修改

1 def outer():
2     a = 1
3     def inner():
4         print(a)
5     return inner
6 outer()
7 # inner是一个闭包
闭包

 

posted @ 2018-09-19 22:44  写bug的日子  阅读(203)  评论(0编辑  收藏  举报