一、函数封装的注意点
1.函数封装,要明确函数的功能
2.函数封装一般都是带参数的
3.函数尽量要有return值
二、形式参数和实际参数
def run(a,b):
retrun a+b
print(run(3,4))
定义:
形式参数:a,b为形式参数,在函数定义的时候的参数
实际参数:3,4为实际参数,函数调用的时候的实际值
三、实际参数的传参方式
1. 位置参数
run(3,4)
位置参数,位置要一一对应,记住自己在什么位置。
2. 关键字参数
可以给参数打一个标签,可以改变参数的位置
run(a=3,b=4) ,也可以写成run(b=4,a=3)
注意点:(1)关键字参数要放在位置参数的后面。
(2)位置参数还是需要遵循位置参数的规则
def cut(a, b ,c):
return a - b * c
print(cut(1,a=2,b=1)) #错误
print(cut(a=1,b=2,3)) #错误
print(cut(1,c=2,b=1)) #正确
3.默认参数
函数在定义的时候指定默认值,当没有传参数时,就使用默认值,如果传参数就使用实际传的参数
def cut(a, b=3 ,c=1): #此处b和c的就是默认参数
return a - b * c
print(cut(1))
print(cut(1,2))
print(cut(1,2,3))
坑1:默认参数要放到位置参数的后面。
def cut(a, b=3 ,c): #此时会报错SyntaxError: non-default argument follows default argument
return a - b * c
4.不定长参数 *args
def test(*args):
print(args)
return None
test("a","b","c")
5.关键字参数的不定长参数 **kwargs
def test(a, b, *args, **kwargs):
print(args)
print(kwargs)
return None
test("a","b","c","d", note="123", way="post")
返回:('c', 'd') #args
{'note': '123', 'way': 'post'} #kwargs
四. 全局变量
全局变量可以在函数内和函数外面都能接收到。局部变量只能在函数体内使用
全局变量存储在 globals()中,局部变量存储在locals()中
五.函数作用域的修改
global a #声明a为全局变量
如果声明了全局变量,就不要用作参数。这样会冲突