4 python
我有这个类定义:
class cols:
name = 'name'
size = 'size'
date = 'date'
@classmethod
def foo(cls):
print "This is a class method"
Run Code Online (Sandbox Code Playgroud)
使用__dict__,我获得所有类属性(成员和变量).还有"内部属性"(如__main__).如何在没有实例化的情况下只获取类变量?
我不会知道一种简单的方法,特别是因为从解释器的POV开始,类的方法和任何其他变量之间没有太大的区别(方法有描述符,但就是它......).
因此,当你只想要不可调用的类成员时,你必须摆弄一下:
>>> class cols:
... name = "name"
... @classmethod
... def foo(cls): pass
>>> import inspect
>>> def get_vars(cls):
... return [name for name, obj in cls.__dict__.iteritems()
if not name.startswith("__") and not inspect.isroutine(obj)]
>>> get_vars(cols)
['name']
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1341 次 |
最近记录: |