标签:变量赋值 open art indicator 执行 全局变量 解析 bsp pre
1 if test: 2 def func(): 3 pass 4 else: 5 def func(): 6 pass
1 #!/usr/bin/env python3 2 3 def func(a, b, c): 4 print(a, b, c) 5 func(c=3, b=2, a=1) # 关键字参数 6 func(1, c=3, b=2) #关键字参数 7 8 def func1(a, b=2, c=3): 9 print(a, b, c) 10 11 func1(1) # 默认参数,如果不给b和c赋值,则会赋默认值。 12 func1(1, 4) # 如果传两个参数,则只有C获得默认值。 13 14 # 位置参数 15 def f(*args): 16 print(args) 17 ‘‘‘ 18 当这个函数调用时,python将所有位置相关的参数收集到一个新的元组中,并 19 将这个元组赋值给args,因为它是一个元组对象,它能够通过索引或for循环 20 中进行步进。 21 ‘‘‘ 22 f(1, 2) 23 24 # ××特性类似,但只能通过关键字传参。将这些关键字参数传递给一个新的字典。 25 # 之后可以通过键来访问字典。 26 def f1(**args): 27 print(args[‘a‘], args[‘b‘]) 28 29 f1(a=1, b=2) 30 31 # 解包参数 32 def f2(a, b, c, d): 33 print(a, b, c, d) 34 # 我们能通过一个元组给一个函数传递四个参数(×语句),它会解包参数。 35 args = (1, 2, 3, 4) 36 f2(*args) 37 38 # 相似的,**会以键/值对的形式解包一个字典,使其成为关键字参数 39 40 args= {‘a‘:1, ‘b‘:2, ‘c‘:3, ‘d‘:4} 41 f2(**args) 42 43 # 另外,在调用函数的过程中,可以通过灵活的方式混合普通参数。 44 f2(*(1,2),**{‘d‘:4, ‘c‘:3}) 45 f2(1,*(2,),**{‘d‘:4, ‘c‘:3})
‘‘‘ 带有默认值的keyworld-only参数都是可选的,但是,那些没有默认值的keyworld-only 参数真正变成了函数必须的keyworld-only参数 ‘‘‘ def f3(a, *b, c, d=‘spam‘): print(a, b, c, d) f3(1,2,3,4,c=5) # ---> 1 (2, 3, 4) 5 spam f3(1,2,3,d=4) # --> error
def echo(msg): print(msg) f = echo f(‘hello world!‘) # --->hello world
我们还可以通过dict(func)来查看函数的属性,也可以向函数添加新的属性
def echo(msg): print(msg) f = echo f(‘hello world!‘) # --->hello world echo.handles="button" echo.handles # ---> button
标签:变量赋值 open art indicator 执行 全局变量 解析 bsp pre
原文地址:http://www.cnblogs.com/baitutu/p/6250449.html