Python 函数参数

Pyhton基础之函数参数及其匹配

 参数传递

  • 位置关键字:位置对应,关键字对应;位置参数(左),关键字参数(右);
  • 使用默认值:无默认值(左),默认值(右);

-

def f(*x):
    print x
if __name__ =='__main__':
        f(1,0,3,2)
'''(1, 0, 3, 2)'''
def f(**x):
print x
if __name__ =='__main__':
    f(x=1,y=2)
'''{'y': 2, 'x': 1}'''
def f(x,y=10,*z):
    print x,y,z
if __name__ =='__main__':
f(1,3,5,6)
'''1 3 (5, 6)'''
def f(*x,**y):
    print x,y
if __name__ =='__main__':
    m=1;n=2;q=3
    f(m,n,q,i=9,j=4)
'''(1, 2, 3) {'i': 9, 'j': 4}'''
  • x-->返回元组,接收位置参数;*x-->接收关键字参数;

- 可变参数解包

def f(x,y,z):
    print x,y,z
if __name__ =='__main__':
    ll = ['Sun', 'Mon', 'Thues']
    f(*ll)
'''Sun Mon Thues'''
  • 函数参数顺序:位置,任意位置,任意关键字

  • lambda是一个单个表达式而非语句,也不是代码块

  • lambda支持使用默认参数
  • lambda args: expression;args:以逗号分隔的参数列表,expression:用到agrs中各参数的表达式
  • lambda用途指定短小的回调函数,返回一个函数

-

ll=[(lambda x:x*2),(lambda y:y*3)]
for i in ll:
    print  i(4)
'''
8
12
'''
  • 函数闭包:lexical closure

- 例子1

def func1(x):
    def func2(y):
        return y**x
    return func2
f=func1(3)
print  f(2)
print  f(3)
'''
8
27
'''

- 例子2

def func1(x,y):
    def func2(m,n):
        return "(%d,%d),(%d,%d)"%(x,y,m+x,n+y)
    return func2
f=func1(3,2)
print f(2,2)
'''
(3,2),(5,4)
'''

- 生成器转换成列表

for i in (j**2 for j in range(1,10)):
    print i
l=list (i**2 for i in range(1,10))
print l
'''
1
4
9
16
25
36
49
64
81
[1, 4, 9, 16, 25, 36, 49, 64, 81]
'''
  • 生成器

- 例1

def Num(x):
    y=0
    while y<=x:
        yield y
        y+=1
g=Num(10)
print type(g)   
print g.next()
print g.next()
print g.next()
print g.next()
'''
<type 'generator'>
0
1
2
3
'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值