为什么python在"."之后允许对象和方法名之间的空格.

ksl*_*te1 6 python python-2.7

有谁知道为什么python允许你在一个对象和被称为"."的方法的名称之间放置无限量的空格.?

这里有些例子:

 >>> x = []
 >>> x.            insert(0, 'hi')
 >>> print x
 ['hi']
Run Code Online (Sandbox Code Playgroud)

另一个例子:

>>> d = {}
>>> d            ['hi'] = 'there'
>>> print d
{'hi': 'there'}
Run Code Online (Sandbox Code Playgroud)

课程也是如此.

>>> myClass = type('hi', (), {'there': 'hello'})
>>> myClass.            there
'hello'
Run Code Online (Sandbox Code Playgroud)

我正在使用python 2.7我尝试做一些谷歌搜索并查看python源代码,但我找不到任何理由为什么这是允许的.

Bre*_*arn 13

这些.行为就像一个运营商.你可以做obj . attr同样的方式,你可以做this + thatthis * that等.该语言参考说:

除了在逻辑行的开头或字符串文字中,空白字符空格,制表符和换页符可以互换使用以分隔标记.

因为这个规则是如此通用,我会假设在解析过程中很早就会执行它的代码.这没什么特别的..除了在行的开头或在字符串内部之外,它只是忽略所有的空白.