是否可以在Python中执行类似以下的操作?
class Object:
def `two words`(self):
return 'Worked!'
根据方言,在 SQL 中,您通常可以使用
Person.[two words]
或 Person.`two words`
等来完成此操作。在 python 中可以这样做吗?
这是可能的。类命名空间不仅限于标识符,这是故意的。但是,在这种情况下,
instance.my attr
语法将不起作用,因此您必须使用getattr(instance, "my attr")
来访问属性。
>>> def two_words(self):
... return 'Worked!'
...
>>> Object = type("Object", (), {"two words": two_words})
>>> obj = Object()
>>> "two words" in dir(obj)
True
>>> getattr(obj, "two words")
<bound method two_words of <__main__.Object object at 0x10d070ee0>>
>>> getattr(obj, "two words")()
'Worked!'
setattr
创建这样的属性。