默认参数,缺省参数,放在参数的最后的最后面
def info(name,age,gender,city='hz'):
'''
:param name:
:param age:
:param gender:
:param city:默认参数
:return:
'''
print('name:',name)
print('age:',age)
print('gender:',gender)
默认参数不可以使用可变参数,会保留上一次的结果,在后面一直追加结果
def f(x,l=[]):
for i in range(x):
l.append(i*i)
print(l)
f(3)
f(3,[3,2,1])
f(3)
f(4)
help(print)
print(print.doc)魔法方法
将所有位置参数的打包成元组
def person_info(*args):
'''
:param args:
:return:
'''
print(args)
for i in args:
print(i)
person_info(12,13,'zhang')
person_info(1)
person_info(1,2,4,5,6,7,8,9,12,15)
将所有的关键字参数打包成字典
def person_info(**kwargs):
'''
:param kwargs:
:return:
'''
print(kwargs)
person_info(name='xiaowang',age=18)
person_info(age=18)
函数参数的混合运用以及*的作用
def sum_num(a,*args,c=7,**kwargs):
print(a)
print(c)
print(args)
print(*args)
#解释器拆包传递
print(kwargs)
for key,value in kwargs.items():
print('key',key,'value',value)
sum_num(1,2,3,c=5,m=4,n=5)
#顺序(位置参数,args,默认值参数,kwargs)
'''*的作用'''
def info(name,age,gender):
print(name,age,gender)
a = ['zhang1',19,'boy']
b = ['zhang2',1,'boy']
c = ['zhang3',9,'boy']
info(a[0],a[1],a[2])
info(*b)
#*自动拆包,挨个传递(参数的个数要相等)
全局变量和局部变量
name='zhang'
def info1():
#局部变量
name='wang'
print(name)
def info2():
'''
这个函数实现全局变量的功能
:return:
'''
global name
name='xxxxxxx'
print(name)
def info3():
print(name)
info1()
info2()
info3()
L(局部命名空间) E(外部嵌套函数) G(全局命名空间) B(内置命名空间)
尽量不要使用同名的变量