定義函式時,引數可以有兩種:
一種是在參數列中寫明引數名key的引數,固定了順序和數量的固定引數:
def func(key1, key2, key3, …)
def func(key1, key2=value, …)
一種是定義時還不知道會有多少引數傳入的可變引數:
def func(*args): #不帶key的多個引數
def func(**kwargs): #key=value形式的多個引數
示例:固定引數:
可變引數:def func_test(key1, key2, key3=23):
print(
"key1=%s, key2=%s, key3=%s" % (key1, key2, key3))
func_test(
'v1', 'v2'
)func_test(
'a', 'b', 768)
func_test(key2=
'kk', key1=
'k')
#可隨意傳入0個或多個無名引數
def func_test2(*args):
for arg, i in zip(args, range(len(args))
): print(
'arg%d=%s' % (i, arg))
func_test2(
'a', 'b', 23, true)
呼叫函式的時候可以傳進兩種引數:#可隨意傳入0個或多個帶名引數
def func_test3(**kwargs):
for key, value in kwargs.items(
): print(
'%s=%s' % (key, value))
func_test3(name=
'tom', sep=
'sofie', age=23)
一種是沒有名字的位置引數:
func(arg1, arg2, arg3, …)
會按照前後順序對應到函式的引數傳入
一種是帶key的關鍵字引數:
func(key1=arg1, key2=arg2, …)
由於指定了key可以不按照順序對應
注意:如果混用位置引數必須在前,關鍵字引數 必須在後
可變引數(實現引數個數不固定)
方法一 params 參考msdn 方法二 將引數封裝為乙個物件 方法三 public static void msgfounction string username,bool ischina true 設定方法引數預設值,呼叫時 msgfounction 張三 為了確定方法是執行什麼操作,有時候...
python中的可變引數和不可變引數
知識點 python中,萬物皆物件。python中不存在所謂的傳值呼叫,一切傳遞的都是物件的引用,也可以認為是傳址。python在heap中分配的物件分成兩類 可變物件和不可變物件。所謂可變物件是指,物件的內容可變,而不可變物件是指物件內容不可變。不可變 immutable int 字串 strin...
可變引數列印 解析可變引數
1.的一般用法 define str s s define cons a,b int a e b int main 2.接受,列印可變引數 參考 glibc庫的bebug函式 define printf fmt,args.printf fmt,args 使用方法 define pr debug fm...