动态导入类

2024-05-15 23:06:21 发布

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

现在我有这样的脚本:

class threadEnum():
    pass

class first(threadEnum):
    pass

class second(threadEnum):
    pass

class third(threadEnum):
    pass

enums = [enum(domain, [], q=subdomains_queue, silent=silent, verbose=verbose) for enum in chosenEnums]
    for enum in enums:
        enum.start()
    for enum in enums:
        enum.join()

哪些课很长,需要很多行。我需要将每个类移动到单独的文件中,然后将所有类导入到主脚本中。所以我创建了文件夹引擎,把三个文件和类放在一起第一.py, 第二.py以及第三.py同时文件__init__.py

我想一定是这样的:

^{pr2}$

但我得到了错误:

AttributeError: 'module' object has no attribute 'first'

怎么了?Python 2.7.6


Tags: 文件inpy脚本forverboseenumpass
2条回答

通过使用一个简单的if语句并使用一个set变量名作为对象,并使用dir()来检测命名对象(类)中的对象。在

将文件夹作为模块导入时,其中的文件不会立即作为属性加载。在

>>> import importlib
>>> print(dir(importlib.import_module('engines'))

['__doc__', '__loader__', '__name__', '__package__', '__path__', '__spec__']

要加载它们,必须使用import语句。在这种情况下,您可以使用__import__("{0}.{1}".format(module,enumm))。在

相关问题 更多 >