是否有一种简单的方法来获取python类中定义的所有解析器?

是否有一种简单的方法来查找类类型中的所有描述符?如果我有这个代码:

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']
点赞