有一个可执行的main.py文件,它将保存文件作为参数,如果保存文件已经过了,我如何检查其他类?
代码main.py:
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="test")
parser.add_argument('--savefile', help="A savefile")
args = parser.parse_args()
if(args.savefile):
from A import A
a = A()
a.run() //executes the run function in A
类A.py
class A(){
def run():
import main
if(main.args.savefile):
//do sth
}
但是我似乎总是得到AttributeError:module 'main' has no attribute 'args'
感谢任何帮助,ty。
答案 0 :(得分:1)
您可以使用类似以下模式的内容来避免危险的导入。
主要的变化是在类中,我们声明__init__
函数接受我们将在main
文件中给出的参数。
#file A.py
class A():
def __init__(self, savefile=None):
self.savefile = savefile
def run(self):
if self.savefile:
# do sth
print(self.savefile)
# main.py
import argparse
from A import A
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="test")
parser.add_argument('--savefile', help="A savefile")
args = parser.parse_args()
if args.savefile:
a = A(args.savefile)
a.run()