是否有__getattribute__从python模块获取类或对象?

Bru*_*uno 1 python class

我有一个像这样的字符串:

classname = "Recipe"
Run Code Online (Sandbox Code Playgroud)

现在我有一个模块"contenttype.py",我想做这样的事情:

import contenttype
myobject = contenttype.__getobject__(classname)(param=value)
Run Code Online (Sandbox Code Playgroud)

是否有与getattribute类似的东西用于模块的顶层?

我知道我可以用exec()来做,但我试图避免这种情况.

谢谢


编辑:

我找到了一种方法,但我不相信它是好的.

import inspect 
myobject = dict(inspect.getmembers(contenttype))[classname](param=value)
Run Code Online (Sandbox Code Playgroud)

bob*_*nce 7

模块只是一个对象,所以是的,你可以使用__getattribute__它.

但是你不想__getattribute__直接打电话,这是一个实现细节.要访问对象(包括模块成员)的命名属性,请使用getattr().

getattr(contenttype, classname)(param= value)
Run Code Online (Sandbox Code Playgroud)