请帮我找到解决问题的方法。 我有一个文件main.py
def arguments_reader():
parser = argparse.ArgumentParser(description='test')
parser.add_argument('--bindhost', dest='host', default='localhost',
help='Hostname to bind (default:localhost)')
args = parser.parse_args()
return args.host
if __name__ == "__main__":
action = arguments_reader()
....
和第二个test.py
class TEST(object):
def __init__(*args):
print(host)
我如何从第一个文件中获取变量主机? 附:我正在运行main.py. P.S.S.我无法在main.py中运行TEST类(它由其他文件运行)所以我不能像参数一样发布它,只能在test.py,main.py文件中导入
由于
答案 0 :(得分:1)
您可以将host作为参数传递给TEST类的构造函数,并在完成参数解析后创建它。您的文件应该是这样的
main.py
from test import TEST
import argparse
.....
def arguments_reader():
parser = argparse.ArgumentParser(description='test')
parser.add_argument('--bindhost', dest='host', default='localhost',
help='Hostname to bind (default:localhost)')
args = parser.parse_args()
return args.host
if __name__ == "__main__":
action = arguments_reader()
test = TEST(action)
.....
ans test.py
class TEST(object):
def __init__(self, host):
print(host)
答案 1 :(得分:0)
您可以导入main.py
:
import main
class TEST(object):
def __init__(self):
self.host = main.arguments_reader()
要注意的一件事是,如果您使用unittest
,UnitTest.main()
会使用命令行参数。