1
def nearbin():
    parser = argparse.ArgumentParser(description = "choose near bin")
    parser.add_argument("-bin",  type=int,action = "store", default = "10", help="bin number")   
    args = parser.parse_args()   
    bin = args.bin 
    print bin
    return f(bin)


if __name__ == "__main__":
    nearbin()        

在命令行中,我可以使用“python test.py -bin 10”来运行程序

如果我想import test在另一个 python 脚本nearbin(bin)中使用另一个脚本中的函数,我该怎么做?

4

2 回答 2

3

我通常的做法:

def nearbin(bin):
    ...

def main(args):
    parser = argparse.ArgumentParser(...)
    ...
    args = parser.parse_args(args)

    nearbin(args.bin)

if __name__ == '__main__':
    sys.exit(main(sys.argv[1:]))

这使您可以支持直接命令行调用 ( ./script.py -bin 20)、使用命令行参数调用 ( )main("-bin 20".split())和编程调用 ( nearbin(20))。

于 2012-10-25T07:01:12.943 回答
2

然后您应该解析检查中的命令行参数__main__并将它们传递给nearbin,如下所示:

def nearbin(bin):
    print bin
    return f(bin)


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description = "choose near bin")
    parser.add_argument("-bin",  type=int,action = "store", default = "10", help="bin number")   
    args = parser.parse_args()   
    bin = args.bin 
    nearbin(bin)   
于 2012-10-25T06:58:12.050 回答