【发布时间】:2017-12-12 01:46:16
【问题描述】:
现在我有这样的脚本:
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()
哪些类很长并且需要很多行。我需要将每个类移动到单独的文件中,然后将所有类导入主脚本。所以我创建了文件夹引擎并放入了三个文件,其中包含 first.py、second.py 和 third.py 类,还有文件 __init__.py
我想一定是这样的:
import importlib
class threadEnum():
pass
chosenEnums = []
chosenEnums = ['first', 'second', 'third']
# Load classes from engines folder
for enumm in chosenEnums:
module = 'engines'
# create a global object containging our module
mymethod = getattr(importlib.import_module('engines'), enumm)
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()
但我得到错误:
AttributeError: 'module' 对象没有属性 'first'
怎么了? Python 2.7.6
【问题讨论】:
-
尝试使用
geattr(...)而不是mymethod = importlob.import_module('engines.' + enumm) -
你可以试试
__import__("{0}.{1}".format(module,enumm)) -
好的。但现在我收到错误
NameError: name 'threadEnum' is not defined -
可能是因为你没有在那个文件中定义类
threadEnum -
所以我需要在每个类中重新定义
threadEnum类?还是使用相互导入?但是如何从引擎文件夹的根目录导入?
标签: python