簡體   English   中英

關鍵字值args在python中的作用?

[英]purpose of keyword value args in python?

def calculate_set(x,y, city, address, geo, etheraddress, email, country_of_origin):
   print(city)
   print(address)
   print(email)
   print(country_of_origin)

假設我以錯誤的方式傳遞了參數的順序:

calculate_set(30,40, geo = "rowanda", 
                 etheraddress= "xu203942", 
                 address="baker street 304", 
                 city="london", 
                 email = "abc@gmail.com", 
                 country_of_origin= 'uk')

該函數仍然可以正常工作,而在Java中,它將僅輸出錯誤消息msg,表明args的順序是錯誤的,並且無法識別? 這是python中關鍵字args的目的嗎?

有很多方法可以將參數傳遞給函數。 在內部,參數是通過賦值傳遞的。 函數參數是對調用方引用的共享庫的引用。

位置參數 :從左到右匹配

按位置傳遞參數的正常情況。

func(a, b)  # Recieved as is left to right

關鍵字arguments :按參數名稱匹配

調用者可以通過在調用中使用參數的名稱來指定函數中的哪個參數要接收值。

func(a=10, b=20)  # Keyword argument or named argument -> POSITION DOESN'T MATTER

變量args :獲取不匹配的位置或關鍵字參數

函數可以使用特殊參數來任意收集許多額外的參數(就像C中支持可變長度參數列表的Java中的varargs功能)。

func(**var_dict)  # Pass arguments as dictionary 

默認值 :為未傳遞的參數指定值

如果調用傳遞的值太少,函數也可以為要接收的參數指定默認值

def func(a=10):
    print(a)

func()  # Prints 10

注意

關鍵字參數后不能傳遞位置參數

在Python中,僅位置args(不帶默認值的args)需要正確的順序。 關鍵字參數可以以任何順序傳遞,但僅應在位置參數之后傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM