class ClassB:
def __init__(self):
self.b = "b"
self.__b = "__b"
@property
def propertyB(self):
return "B"
I know getattr,hasattr... can access the property.
But why don't have the iterattr or listattr?
Expect result of ClassB object:
{'propertyB': 'B'}
Expect result of ClassB class:
['propertyB']
Thanks @juanpa.arrivillaga 's comment.
vars(obj) and vars(obj.__class__) is different!
Use the built-in vars as follows:
properties = []
for k,v in vars(ClassB).items():
if type(v) is property:
properties.append(k)
Using a list-comprehension:
>>> [k for k,v in vars(ClassB).items() if type(v) is property]
['propertyB']
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With