Bur*_*lid 3 python syntax function-calls python-2.7
我正在Python控制台上试验一些东西,我注意到函数名称和()Python 之间有多少空格并不重要,Python仍设法调用该方法?
>>> def foo():
... print 'hello'
...
>>> foo ()
hello
>>> foo ()
hello
Run Code Online (Sandbox Code Playgroud)
怎么可能?不应该引发某种例外吗?
从关于标记之间空格的Lexical Analysis文档:
除了在逻辑行的开头或字符串文字中,空白字符空格,制表符和换页符可以互换使用以分隔标记.仅当两个令牌的串联可以被解释为不同的令牌(例如,ab是一个令牌,但ab是两个令牌)时,才需要两个令牌之间的空格.
反转最后一句,任何两个令牌之间允许有空格,只要它们不应被解释为没有空格的一个令牌.这里是没有限制多少空白使用.
前面的部分定义了包含逻辑行的内容,以上仅适用于逻辑行.以下是合法的:
result = (foo
())
Run Code Online (Sandbox Code Playgroud)
因为逻辑线通过括号跨越换行符延伸.
的调用表达式是一个单独的系列从什么先令牌; foo只是在全局命名空间中查找的名称,您可以从字典中查找对象,它可以从另一个调用返回等等.因此,该()部分是两个单独的标记和任何数量的空白和允许这些.
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |