python 5

来源:互联网 发布:magento block加载js 编辑:程序博客网 时间:2024/04/28 22:51
python 函数参数
1.不可变参数是通过"传值"的
2.可变参数是传引用。。。
例如
def fun(a,b):
     a= 10
b[0]="spam"
x = 100
y = [1,2]
fun(x,y)
print(x,y)
输出:100,["spam",2]
实际上传入参数并没有修改Y,也没有修改X,只是b修改了Y指向的目标。


3.关键字参数。
def fun(a,b,c)
print(a,b,c)

fun(c=1,b=2,a=3)
通过关键字参数调用是为了看起来更文档化一点。
关键字参数可以跳过默认参数
def fun(a,b=1,c=2):
    print(a,b,c)
fun(1,c=10)


def fun(*args)
def fun(**args)//和fun一样,只是这个是对关键字参数有效
fun(*args)//调用解包
fun(**args)


def fun(a,b,c):
    print(a,b,c)
L = [1,2,3]
fun(*L)


S ={'a':1,'b':2,'c':3}
fun(**S)


keyword-only 参数
def fun(a,*b,c):
    print(a,b,c)
def fun2(a,*,c):
    print(a,c)
函数注释:挺有意思
def sum(L:124444)->int:
    if not L:
        return 0
    else:
        return L[0] + sum(L[1:])
print(sum._anatation__)


输出{'L': 124444, 'return': <class 'int'>}


python map会对每一个元素应用传入的函数
def fun2(b):
    b +=1
    return b
L = [1,2,3,4]
print(list(map(fun2,L)))
输出[2, 3, 4, 5]


filter reduce
from functools import reduce
a=reduce(lambda x, y: x+y, [],10)
print(a)
0 0
原创粉丝点击