Python中的property修饰符接受一个方法并将其包装在类上定义的属性中。这样,该类的实例就足够聪明,在引用该属性时可以有不同的行为。 让我们用一个属性和一个字段以及类的一个实例来设置一个简单的类,以便进行测试 class A: def __init__(self): self.my_field = "foo" @property def my_property(self): return "foo"a = A() 然后,如果我们在REPL中检查这个类,就会发现a.my_field和a.my_property都是"foo"。更有趣的是,A.my_field是AttributeError,A.my_property是property对象(即property类的实例)。这正是我们可以利用的 def is_property(class_, name): try: return isinstance(getattr(class_, name), property) except AttributeError: return False 如果类中不存在该名称,则返回False,因为它肯定不是属性。如果是,那么检查它是否是property类的实例。就这么说吧 is_property(A, 'my_field')is_property(A, 'my_property') (注意我们使用的是