是否有一种简单的方法来查找类类型中的所有描述符?如果我有这个代码:
class Descriptor(object):
def __init__(self):
self._name = ''
def __get__(self, instance, owner):
print "Getting: %s" % self._name
return self._name
def __set__(self, instance, name):
print "Setting: %s" % name
self._name = name.title()
def __delete__(self, instance):
print "Deleting: %s" %self._name
del self._name
class ContrivedExample(object):
Name = Descriptor()
Date = Descriptor()
如何从类外部发现ContrivedExample.Name和ContrivedExample.Date?
最佳答案 您可以遍历类’__dict__属性,该属性存储类中的所有已定义名称,并检查每个名称的值类型.
descriptors = [m for m,v in ContrivedExample.__dict__.iteritems()
if isinstance(v, Descriptor)]
# descriptors is set to ['Name', 'Date']