Python 类属性,其中包含空格
在Python中是否可以执行以下操作Python 类属性,其中包含空格,python,python-3.x,python-internals,Python,Python 3.x,Python Internals,在Python中是否可以执行以下操作 class Object: def `two words`(self): return 'Worked!' 根据方言的不同,在SQL中,您通常可以使用类似于Person.[two words]或Person.`two words`,等等的东西来实现这一点。在python中是否可以实现这一点?可以实现的原因是类名称空间不限于(这是在语言中实现的)。但是,除了getattr之外,没有其他语法可用于访问此类属性 >>
class Object:
def `two words`(self):
return 'Worked!'
根据方言的不同,在SQL中,您通常可以使用类似于
Person.[two words]
或Person.`two words`
,等等的东西来实现这一点。在python中是否可以实现这一点?可以实现的原因是类名称空间不限于(这是在语言中实现的)。但是,除了getattr
之外,没有其他语法可用于访问此类属性
>>> 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!'
>>定义两个单词(self):
... 返回“工作!”
...
>>>Object=type(“Object”,(),{“两个词”:两个词})
>>>obj=对象()
>>>dir(obj)中的“两个词”
真的
>>>getattr(obj,“两个字”)
>>>getattr(obj,“两个字”)()
“成功了!”
也可以使用
setattr
创建这样的属性,好吧,我想我可能会像您那样映射一个空间,或者如果需要保留该数据(可能还有标识符不支持的其他代码点),就将其转换为\u20
)。你知道在CPython中这些标识符限制是在什么地方完成的吗?我想在这里