Python:有没有一种方法可以反射地列出一个类的所有属性

2024-10-01 15:42:20 发布

您现在位置:Python中文网/ 问答频道 /正文

给了一个类,比如

class MyClass:
    text = "hello"
    number = 123

python中有没有一种方法可以检查MyClass并确定它有两个属性text和{}。我不能使用像inspect.getSource(object)这样的东西,因为我要获取它的属性的类是使用SWIG生成的(因此它们隐藏在.so:)中)。在

所以我真的在寻找与Java的[Class.getDeclardFields][1]等价的东西

任何帮助都将不胜感激,否则我将不得不用SWIG+JAVA而不是SWIG+Python来解决这个问题。在


Tags: 方法textnumberhello属性soobjectmyclass
3条回答
>>> import cmath
>>> dir(cmath)
['__doc__', '__file__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'isinf', 'isnan', 'log', 'log10', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh']
>>> cmath.atan
<built-in function atan>

dir的,并且

^{pr2}$

动态加载

请编写实际的、可执行的代码片段;不要期望回答您问题的人首先修复您的代码。在

class MyClass(object):
    text = "hello"
    number = 123

for a in dir(MyClass):
    print a

我通常只使用dir(MyClass)。也适用于实例化对象。在

编辑: 我应该提到这是一个速记函数,我用它来判断我的对象是否创建正确。如果以编程方式执行此操作,则可能需要更仔细地查看反射API。在

它也可能不适用于链接库。在

相关问题 更多 >

    热门问题