导入变量的问题

时间:2017-07-30 17:43:50

标签: 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)')
    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文件中导入

由于

2 个答案:

答案 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()

要注意的一件事是,如果您使用unittestUnitTest.main()会使用命令行参数。