'''
1.默认参数
2.关键字参数
3.非固定参数
4.局部变量
'''
#默认参数
def student(name, age, sex, address):
print(name, age, sex, address)
#关键字参数----关键参数必须放在默认参数之后
def student2(name, age, address, sex='男'):
print(name, age, sex, address)
#非固定参数
def student3(name, age, address, *args):
print(name, age, address, args)
#非固定参数
def student4(name, age, address, **kwargs):
print(name, age, address, kwargs)
#局部变量
name = 'xiaohua'
def say(name):
print('befor--name:'+name)
name = '小华'
print('say--name:'+name)
student('小华', '21', '男', '中国')
#改变顺序
student('21', '小华', '中国', '男')
print('------------这是分割线--------------')
student2('小华', '21', '中国')
student2('小华', '21', '中国', sex='女')
print('------------这是分割线--------------')
student3('小华', '21', '中国')
student3('小华', '21', '中国', '可爱', '迷人')
print('------------这是分割线--------------')
student4('小华', '21', '中国', dic1='可爱', dic2='迷人')
print('------------这是分割线--------------')
say(name)
结果展示:
小华 21 男 中国
21 小华 中国 男
------------这是分割线--------------
小华 21 男 中国
小华 21 女 中国
------------这是分割线--------------
小华 21 中国 ()
小华 21 中国 ('可爱', '迷人')
------------这是分割线--------------
小华 21 中国 {'dic1': '可爱', 'dic2': '迷人'}
------------这是分割线--------------
befor--name:xiaohua
say--name:小华
总结:
1.默认参数
默认按照函数顺序,传参时按照函数顺序即可。
2.关键字参数
必须放在默认参数后面
3. *args 实际是(),如:()、('可爱', '迷人');
*args,前面不能跟关键参数,会报错
4. **kwargs 实际是字典,如:{'dic1': '可爱', 'dic2': '迷人'};
**kwargs,前面可以跟关键参数
5. 局部变量
在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。