2
美好的一天!如何在不实例化类的情况下获得类成员的完整列表?
我在写一个为我的数据感知应用程序构建GUI的小工具。
的基本思想是得到一个模块含有一个模型描述(sqla/elixir
实体)作为输入,并用可用类从该列表(从Entity()
继承)和它们的字段(从Field()
继承)向用户呈现模块。
pyclbr模块很适合获取类和它们的方法,但它不能读取其他类成员。我知道关于__dict__
和检查模块,但问题是他们需要实例化一个类的问题,这是在这种情况下是错误的。那么,还有另一种方式吗?
我真的不想将模块解析为文本。 :)
在您的示例中,dir在模块的上下文中调用。这意味着我必须先导入模块,对吗? – AlexVhr
只要使用'mod = __import __('modname')',如果你不想在当前上下文中使用。然后你可以使用'dir(modname)'来获取它的属性,然后从那里开始工作。如果模块在导入时运行代码而不想运行,它应该放在'if __name__ ='__main __''或一个'run()'函数中。 – agf
感谢提示,我可能会这样。在我的情况下,没有任何保证源模块不会包含任何运行导入代码,但我想我必须忍受它。谢谢! – AlexVhr