0

我一直在浏览各种帖子,看看是否已经回答了这个问题。但要么我无法理解盯着我的答案,要么我脑海中的确切问题以前没有被问过。

问题:我创建了一个名为“Filter.py”的程序,其目的是接受一个文件作为命令行参数,比如“Flags.txt”,使用该文件进行大量“过滤”。例如。加载了一个数组 A。创建满足某些条件的子集 A_1,满足另一个集合的 A_2,依此类推。我希望这些数组 A_1、A_2 在其他程序中可用。所以,我在另一个程序中说

from Filter import *

只要“Filter.py”被编程为即使没有提供命令行参数,上述方法也可以工作。问题是 - 使用上述方法导入时,我可以传递命令行参数吗?

4

2 回答 2

1

不。最好的方法是将你的功能包装在你的脚本中的一个函数(我们称之为它main)中,它可以做所有事情。Filter.py并添加以下内容:

# Filter.py
#...

if __name__ == '__main__':

    # ...

    main(some, args)

这样,从命令行调用:

python Filter.py

将执行main。如果你想在另一个脚本中导入它(main 不会被调用):

# your other program
import Filter

# ...

Filter.main(some, args)
于 2013-02-20T09:43:24.007 回答
0

我不确定您是如何在 Filter.py 中设置程序的

但是你能把算法包装在一个函数中并在函数调用中传递参数吗

例如。

from Filter import filter
result = filter(argA, argB, argC)
于 2013-02-20T09:43:54.900 回答