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