2011-03-07 77 views
4

我瞭解除第一個之外的所有功能。 (* args)是什麼意思?學習python硬的方法練習18幫助

感謝

def print_twice(*args): 
    arg1, arg2 = args 
    print 'arg1: %r arg2: %r' % (arg1, arg2) 

def print_twice_again(arg1, arg2): 
    print 'arg1: %r arg2: %r' % (arg1, arg2) 

def print_once(arg1): 
    print 'arg1: %r' % arg1 

def print_none(): 
    print 'i got nothin...' 

print_twice("neil", "harper") 
print_twice_again("neil", "harper") 
print_once("first!") 
print_none() 
+4

可能的重複[什麼是* args和** kwargs是什麼意思?](http://stackoverflow.com/questions/287085/what-does-args-and-kwargs-mean) – phihag 2011-03-07 11:21:00

+0

可能重複[What do **和*爲python參數嗎?](http://stackoverflow.com/questions/36901/what-does-and-do-for-python-parameters) – sth 2011-11-06 16:18:27

回答

5

一個星號指定一個列表,二asterixes指定的字典。

+0

所以* args列出了一個名爲args的列表?什麼定義了它可以容納多少個值? – neil 2011-03-07 11:26:23

+0

@neil:它可以容納任意數量的值。所以'print_twice(1,2,3,4,5)'將在'args'中傳遞一個帶有5個參數的列表。 – 2011-03-07 11:28:47

+0

感謝我現在得到它。 – neil 2011-03-07 11:36:15