![](/img/trans.png)
[英]Is it possible to call a function that needs a parameter, without it? On python
[英]Possible to call single-parameter Python function without using parentheses?
Python文档指定如果函数只接受单个参数,则省略括号是合法的,但是
myfunction "Hello!"
生成语法错误。 那么,这笔交易是什么?
(我正在使用Python 3.1)
编辑:
我读的语句只适用于生成器表达式 :
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))
那样s = sum((f(x) for x in items))
东西s = sum((f(x) for x in items))
(外括号表示函数调用,内部表示生成器表达式)你可以只写sum(f(x) for x in items)
没有括号,那些不是functions
而是statements
或keywords
(语言本征)。
这个StackOverflow线程 (有一些非常好的答案) 包含一个关于如何在纯Python中创建自己的线索 (通过高级hackery,在99.99%的情况下不是一个好主意)。
据我所知,规则只是关于生成器表达式...所以例如:sum(x 2表示范围(10)中的x),但你仍然需要写:reduce(operator.add,(x 2 for x)在范围(10)))。
但这不适用于通用功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.