Python 函数
1.函数特性
代码重用行;保持一致性;可扩展性
2.函数创建
2.1格式
def function_name(): pass
2.2调用
function_name()
2.3命名规范
区分大小写;命名与变量命名相同;保留字不能使用
3.函数参数
3.1必备参数
按照先后的顺序传入参数
3.2关键字参数
在调用函数时指定 形参名称=值 的方式
3.3默认参数
在定义函数时指定 形参名称=值 的方式,调用时可以不传这个参数则值为默认,传入这个参数的话则使用传入参数的值
默认参数一定要放在不默认参数的后面
定义默认参数要牢记一点:默认参数必须指向不变对象!
如果默认参数不是不变对象,则参数会“记忆”上一次的参数值
3.4不定长参数
3.4.1 接收不命名参数
def function(*args): print(args) sum =0 for i in args: sum+=1 function(1,2,3,.....)#不命名参数
3.4.2接收不命名参数+命名参数
def function_new(*args,**kwargs): print(args) print(kwargs)
调用时: funciton_new(1,2,3,flag='abc',flag_new='cnm')
如果传入列表,接收列表则: function_new(*[1,2,3])
如果传入字典,接收字典则: function_new(**{“name”:"Alex"})
不命名参数会将传进来的参数变成元组tuple,命名参数会将传进来的参数变成字典dict,两者混用时,不命名参数在左边。
3.4.3默认参数与不命名参数和命名参数混用时,应该放在第一位
3.4.4 命名关键字参数
和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。
def person(name, age, *, city, job): print(name, age, city, job)
如果函数定义中已经有了一个不命名参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了
命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错
使用命名关键字参数时,要特别注意,如果没有不命名参数,就必须加一个*作为特殊分隔符。如果缺少*,Python解释器将无法识别位置参数和命名关键字参数
3.4.5 组合参数
在Python中定义函数,可以用必选参数、默认参数、不命名参数、命名参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、不命名参数、命名关键字参数和命名参数。
4.返回值
注意:函数里面没有返回,默认返回none
如果函数返回多个对象,将多个对象封装成一个元组返回
return 代表着函数的结束
5.作用域
函数里面的局部作用域不可以修改全局变量,想要修改全局变量需要关键字声明 global 为全局变量
如果是函数嵌套外层函数定义,内层函数如果要修改变量的值需要关键字声明 nonlocal 为上一层局部变量
变量查找顺序:作用域局部>外层作用域>当前模块中的全局>python内置作用域
只有模块、类和函数可以引入新作用域
浙公网安备 33010602011771号