Python的文檔指定是是合法的省略括號如果一個函數只採用單個參數,但可能調用單參數Python函數而不使用括號?
myfunction "Hello!"
生成語法錯誤。那麼,交易是什麼?
(我使用Python 3.1)
編輯:
,我讀僅適用於generator expressions聲明:
The parentheses can be omitted on calls with only one argument.
Python的文檔指定是是合法的省略括號如果一個函數只採用單個參數,但可能調用單參數Python函數而不使用括號?
myfunction "Hello!"
生成語法錯誤。那麼,交易是什麼?
(我使用Python 3.1)
編輯:
,我讀僅適用於generator expressions聲明:
The parentheses can be omitted on calls with only one argument.
爲了您的編輯:
如果你寫下一臺發電機的表情,像stuff = (f(x) for x in items)
你所需要的支架,就像你所需要的[ .. ]
周圍列表理解。但是當你將一些東西從一個生成器表達式傳遞給一個函數(這是一個非常常見的模式,因爲這幾乎是發生器背後的大想法),那麼你不需要兩組括號 - 而不是像s = sum((f(x) for x in items))
(括號外,表示一個函數調用,內爲發電機表達式),你可以只寫sum(f(x) for x in items)
沒有括號那些不會functions
但statements
或keywords
(語言固有)。
This StackOverflow thread(有一些非常好的答案)contains a lead as如何在純Python中創建自己的(通過高級hackery,而不是在99.99%的情況下是個好主意)。
據我瞭解規則是隻有約發電機表情... 因此,例如:SUM(X 2 X在範圍內(10)),但您仍然必須編寫: reduce(operator.add,(x 2 for x in range(10)))。
雖然這不適用於泛型函數。
你可以用iPython做到這一點 - 在-autocall命令行選項可以控制這個功能(使用-autocall 0
禁用該功能,-autocall 1
,默認,只具有一種論點是目前它的工作,並-autocall 2
有它即使沒有參數的可調參數也可以工作)。
確定嗎?你能告訴我們你在哪裏閱讀該規則?你對紅寶石感到困惑嗎? – 2010-05-28 22:30:37
您可能會將Python與Ruby或Lua混淆,在這種情況下可能會省略鬼臼。 – interjay 2010-05-28 22:36:47
@Jen:他們討論了表示生成器的括號,而不是函數調用。 – SilentGhost 2010-05-28 23:00:35