如果我有一个如下课程:
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]
或者:
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)]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句