函式注意事項

skysparrow發表於2018-05-08
# 函式的位置引數必須要傳實參,可以按位置,也可以按關鍵字傳
# 函式的預設引數可以不傳實參,可以按位置,也可以按關鍵字
# 不定長引數*args只收集位置引數形成元組,不定長引數應放在後面,要不會把實參當做位置引數然後報錯
# 用**,只要定義了關鍵字引數,以後針對這個引數傳值就必須是關鍵字形式傳遞



# 關鍵字引數和關鍵字傳值必須放在位置引數(實參)後面
# def add_num(list1 = []):     # 執行第二次以後裡面的預設引數不會執行,會把第一次執行完的結果當做關鍵字引數放入
#     list1.append(100)
#     print(list1)

# add_num()
# add_num()
# add_num()


# 函式:每個使用者去呼叫函式,在自己的列表中追加100,不能干擾別人的
# def add_num(list1=None):
#     if list1==None:
#         list1 = []  # 針對每個使用者建立自己的list
#     list1.append(100)
#     print(list1)

# add_num()
# add_num()
# add_num()

# *args:位置引數,收整合元組
# def func1(name,*args,age=12):
#     print(args)
#     for i in args:
#         print(i)

# func1(`python`, `man`,`meiguo`, age=28)

# **kwargs :收集關鍵字引數,合併字典
# def func2(**kwargs):
#     print(kwargs)
#     for key,value in kwargs.items():
#         print(key)
#         print(value)

# func2(name=`python`,age=28,sex=`man`,weizhi=`helan`)

# 定義關鍵字引數
def func1(*,name,age,sex,**k):
    print(name)
    print(age)
    print(sex)
    print(k)
#
# func1(`python`, 28,sex=`man`)
func1(name=`python`, age=30, sex=`nv`, aw=`as`,ad=22)


# 工作經驗:不定長引數都是放到最後
def func1(a,b, c=100, *args, **kwargs):
    ```
    sadasdada             # 函式說明文件,使用help可檢視,函式名前用# ,函式名後用文件註釋
    ```
    print(a)
    print(b)
    print(c)
    print(args)
    print(kwargs)

# 不定長引數可以不接收值
func1(10,99, 20, f=200, d=90)    # 函式是按順序接收,如果提前把關鍵字引數給了實參
help(func1)                  # 則後面緊跟著的是函式裡寫形參位置,關鍵字引數後面的要傳入實參的形式
# c是第三個位置,能接收第三個資料
# func1(10, 20, 300)

# func1(10, 20, 30, 40,50,60,name=`python`)

# 下一行報錯:一個引數c只能接收一個值:這裡是c接收了30和100
# func1(10,20,30,50,60, c=100,name=`python`)

  

                                                                   ——-  知識無價,汗水有情,如需搬運請註明出處,謝謝!


相關文章