Python 变量的导入问题
请帮我找到解决问题的办法。 我有一个main.py文件Python 变量的导入问题,python,Python,请帮我找到解决问题的办法。 我有一个main.py文件 def arguments_reader(): parser = argparse.ArgumentParser(description='test') parser.add_argument('--bindhost', dest='host', default='localhost', help='Hostname to bind (default:localhost)')
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
另外,我不能在main.py中运行测试类,因为它是由其他文件运行的,所以我不能像参数一样发布它,只能在TEST.py,main.py文件中导入
谢谢,您可以将host作为参数传递给测试类的构造函数,并在解析完参数后创建它的实例。。你应该喜欢这个 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测试.py
class TEST(object):
def __init__(self, host):
print(host)
您可以导入main.py:
需要注意的一点是,如果您使用的是unittest,unittest.main将使用命令行参数。那么是什么阻止您导入它呢?您需要在uu init_uu中显式定义参数,例如def u init_uself,host。然后,您可以在main.py中构造一个实例,例如t=testAction从main.py导入argument_reader函数,调用该函数并将结果分配给某个变量。然后将变量名传递给构造函数进行测试。或者,如果您想将测试导入main.py,请按照@AChampion所说的做。请给出一个示例。显示所有必要的代码来说明您正在做什么。任何人都应该能够复制和粘贴您的代码,然后运行它,并获得与您所询问的完全相同的结果。也许可以在内部使用全局[var_name]!
import main
class TEST(object):
def __init__(self):
self.host = main.arguments_reader()