如果我有一堂课如下:
class myclass(object):
i = 20
j = 30
k = 40
def __init__(self):
self.myvariable = 50
如何获得包含 i、j 和 k 的列表? (类的静态成员)
我尝试过使用:
[x for x in dir(a) if isinstance(getattr(a, x), (int, long))]
然而,这也会返回 self.myvariable。有没有办法在实例和类类型上执行此操作?
print([ getattr(myclass,x) for x in dir(myclass) if not x.startswith("__")])
[20, 30, 40]
Or:
print([v for k,v in myclass.__dict__.items() if not k.startswith("__")])
如果您尝试使用,请检查它的类型issinstance
:
[getattr(myclass, x) for x in dir(myclass) if isinstance(getattr(myclass, x) , int)]
使用字典:
[v for k,v in myclass.__dict__.items() if isinstance(v,int)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)