导入测试示例(Python)

时间:2015-06-24 21:52:16

标签: python testing import

对于以下问题,我无法找到答案 我有我的程序在一个文件中做各种图形的图形。在我的类定义和函数之后,我有我的基本结构,其函数可以调用一对图形 现在我希望有不同的额外文件,每个文件都有一对图表来显示我的程序的不同方面 如何将该文件存入我的主程序,就像额外文件中的代码在我的主程序中一样? 我知道,这是一个基本问题,但我以前从未处理过这个问题。

例如:

class foo:
    def __init__(stuff)

    def plot(self):
        ...

    more stuff

# I want the following in an extra file #
# Two equal graphs

A = nx.Graph([(0, 1), (1, 2), (2, 3), (3, 7), (3, 4), (4, 5), (5, 6)])
B = nx.Graph([(0, 1), (1, 2), (2, 3), (3, 7), (3, 4), (4, 5), (5, 6)])
# That's it

x = foo(A, B)
x.plot

如果我还可以通过命令行指定要加载的文件,那就更好了。

1 个答案:

答案 0 :(得分:1)

您可以将变量/图形对放在它们自己的python文件中,然后将它们导入主文件中。

实施例

example1.py

A = nx.Graph([...])
B = nx.Graph([...])

example2.py

A = nx.Graph([...])
B = nx.Graph([...])

main.py

import example1 as ex1
import example2 as ex2

class foo:
    ...

x = foo(ex1.A, ex2.B)
x.plot()

如果您真的希望用户指定在命令行使用哪个图表对,请查看argparseimportlib

import argparse
import importlib
import foo

parser = argparse.ArgumentParser(description='Example app')
parser.add_argument('input', nargs=1)
args = parse.parse_args()

mod = importlib.import_module(args.input)
x = foo(mod.A, mod.B)
x.plot()