【发布时间】:2019-04-13 23:06:37
【问题描述】:
在 Python 3.6 中,我可以使用 __set_name__ 挂钩来获取描述符的类属性名称。如何在 python 2.x 中实现这一点?
这是在 Python 3.6 中运行良好的代码:
class IntField:
def __get__(self, instance, owner):
if instance is None:
return self
return instance.__dict__[self.name]
def __set__(self, instance, value):
if not isinstance(value, int):
raise ValueError('expecting integer')
instance.__dict__[self.name] = value
def __set_name__(self, owner, name):
self.name = name
class Example:
a = IntField()
【问题讨论】:
-
我稍微编辑了你的问题。
__set_name__在 3.6 中引入。
标签: python python-2.7