似乎保留字不能用作python中的属性:
$ python
Python 3.6.2 |Continuum Analytics, Inc.| (default, Jul 20 2017, 13:51:32)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> class A:
>>> global = 3
File "<stdin>", line 2
global = 3
^
SyntaxError: invalid syntax
这似乎是明智的,因为它是模棱两可的:我在这里使用global
关键字吗?很难说。
但这不是明智的恕我直言:
>>> class A: pass
>>> a = A()
>>> a.global = 3
File "<stdin>", line 1
a.global = 3
^
SyntaxError: invalid syntax
>>> a.def = 4
File "<stdin>", line 1
a.def = 4
^
SyntaxError: invalid syntax
>>> a.super = 5
>>> a.abs = 3
>>> a.set = 5
>>> a.False = 5
File "<stdin>", line 1
a.False = 5
^
SyntaxError: invalid syntax
>>> a.break = 5
File "<stdin>", line 1
a.break = 5
^
SyntaxError: invalid syntax
为什么会有这个限制?我不是单独使用保留字,而是作为一个类属性:完全没有歧义。为什么python会关心这个?