python 5

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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章