Python 2.7:如何获取类中的静态变量列表?

Har*_*Har 4 python python-2.7

如果我有一个课程如下:

class myclass(object):
    i = 20
    j = 30
    k = 40
    def __init__(self):
        self.myvariable = 50
Run Code Online (Sandbox Code Playgroud)

如何获得包含i,j和k的列表?(该类的静态成员)我试图使用:

[x for x in dir(a) if isinstance(getattr(a, x), (int, long))]
Run Code Online (Sandbox Code Playgroud)

然而,这也返回self.myvariable.有没有办法在实例和类类型上执行此操作?

Pad*_*ham 5

print([ getattr(myclass,x) for x in dir(myclass) if not x.startswith("__")])
[20, 30, 40]
Run Code Online (Sandbox Code Playgroud)

要么:

print([v for k,v in myclass.__dict__.items() if not k.startswith("__")])
Run Code Online (Sandbox Code Playgroud)

如果您尝试使用检查它的类型issinstance:

[getattr(myclass, x) for x in dir(myclass) if isinstance(getattr(myclass, x) , int)]
Run Code Online (Sandbox Code Playgroud)

使用dict:

[v for k,v in myclass.__dict__.items() if isinstance(v,int)]
Run Code Online (Sandbox Code Playgroud)