标签:自定义 level 函数定义 截断 代码 表达 nes 可扩展 换行
初次编辑2017年10月23日,星期一
引用:Alex
foo()
res=bar(1,2)
def foo(x,y) #形参
print(x)
print(y)
foo(1,2) #实参
在实参的角度的三种传值方式
按位置传值:
def foo(x,y):
print(x)
print(y)
foo(1,2)
按照关键字传值
def foo(x,y):
print(x)
print(y)
foo(x=1,y=2)
对于一个形参,只能赋值一次,不能重复赋值
def foo(x,y):
print(x)
print(y)
foo(1,y=2)
从形参的角度分析
位置参数,必须传值的参数
def foo(x,y):
print(x)
print(y)
foo(1,2)
def foo(x,y=1):
print(x)
print(y)
foo(2)
默认参数在函数定义阶段,他的值就已经确定了
sex =‘male‘
def register(sex=x): #register-----[sex = ‘male‘]
print(sex)
sex = None
register() #输出为male
x=[]
def register(name,name_list=x):
name_list.append(name)
register(‘ASB‘)
register(‘YSB‘)
register(‘WSB‘)
print(x) #[‘ASB‘,‘YSB‘,‘WSB‘]
def foo(x,*args): #args = (2,3,4,5,6,‘a‘,‘b‘)
print(x)
print(args)
foo(1,2,3,4,5,6,‘a‘,‘b‘) #输出为1;(2,3,4,5,6,‘a‘,‘b‘)
def foo(x,*args,y=2)
print(x)
print(args)
print(y)
foo(1,2,3,4,5,y=1000) #>>1;(2,3,4,5);1000
def foo(*args): #args=(1,2,3)
print(args)
foo(1,2,3)
def bar (x,y,z)
print(x)
print(y)
print(z)
bar(*(1,2,3)) #bar(1,2,3)
def foo(x,**kwargs):
print(x)
print(kwargs)
foo(1,y=2,a=3,b=4) #<<1;{‘b‘:4,‘y‘:2,‘a‘:3}
def foo(x,*args,**kwargs):
print(x)
print(args)
print(kwargs)
foo(1,y=1,z=2) #>>1,(),{‘y‘:1,‘z‘:2}
def foo(**kwargs): #{‘x‘: 1, ‘y‘: 2, ‘z‘: 3}
print(kwargs)
foo(x=1,y=2,z=3)
3.从实参的角度
def foo(x,y,z=3):
print(x)
print(y)
print(z)
foo(**{‘x‘:1,‘y‘:2,‘z‘:3}) #foo(x=1,y=2,z=3)
def auth(name,password,sex=‘male‘):
print(name)
print(password)
print(sex)
def foo(*args,**kwargs): #args =(‘egon‘,‘123‘) kwargs= {}
print(‘from foo‘)
auth(*args,**kwargs) #auth(*(‘egon‘,‘123‘),**{})---------auth(‘egon‘,‘123‘)
foo(‘egon‘,‘123‘) >>
标签:自定义 level 函数定义 截断 代码 表达 nes 可扩展 换行
原文地址:http://www.cnblogs.com/sama/p/7825398.html