Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 类属性,其中包含空格_Python_Python 3.x_Python Internals - Fatal编程技术网

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之外,没有其他语法可用于访问此类属性 >>

在Python中是否可以执行以下操作

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中这些标识符限制是在什么地方完成的吗?我想在这里