Python 变量的导入问题

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)')

请帮我找到解决问题的办法。 我有一个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 另外,我不能在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()