Python:通过属性名称获取静态属性
我有一个通过元类“模拟”静态属性的 python 类:
class MyMeta(type):
@property
def x(self): return 'abc'
@property
def y(self): return 'xyz'
class My: __metaclass__ = MyMeta
现在我的一些函数接收属性名称作为字符串,应该从 My.
def property_value(name):
return My.???how to call property specified in name???
这里的要点是我不想创建 My 的实例。
非常感谢,
奥瓦内斯
I have a python class with "emulated" static properties via a metaclass:
class MyMeta(type):
@property
def x(self): return 'abc'
@property
def y(self): return 'xyz'
class My: __metaclass__ = MyMeta
Now some of my functions receives the property name as a string, which should be retrieved from My.
def property_value(name):
return My.???how to call property specified in name???
The point here is that I don't want an instance of My to be created.
Many thanks,
Ovanes
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你可以使用
You could use
我最近在看这个。我希望能够编写
Test.Fu
,其中Fu
是计算属性。以下工作使用描述符对象:
请注意,在幕后分配了一个
Test
实例。I was looking at this recently. I wanted to be able to write
Test.Fu
whereFu
is a computed property.The following works using a descriptor object:
Note that there is an instance of
Test
allocated behind the scenes.