【发布时间】:2015-05-15 15:32:11
【问题描述】:
我有一个使用 argparse 从命令行调用的方法。我还想从另一个方法调用该方法,在这种情况下,我收到一条错误消息,提示未定义 args。有没有办法解决这个问题,我试过设置一个默认值,但我得到了同样的错误。
def change_modem_bank(bank_num=None, modem=None):
if args.sim_bank and args.modem_num:
bank_num = args.sim_bank
modem = args.modem_num
if "1" in bank_num:
print "2"
elif "2" in bank_num:
print "2"
print modem
if __name__=='__main__':
parser_mode = subparsers.add_parser('set_modem_bank')
parser_mode.add_argument('-bank',dest='sim_bank',help='SIM bank number',nargs='?',const=None,default=None)
parser_mode.add_argument('-modem_num',dest='modem_num',help='Modem number',nargs='?',const=None,default=None)
parser_mode.set_defaults(func=change_modem_bank)
args=parser.parse_args()
args.func()
我想从另一个脚本中调用这样的方法:
import cellular_modem
cellular_modem.change_modem_bank("2","0")
目前我可以这样称呼它:
myscript.py set_modem_bank -bank ${num} -modem ${modem_num}
我希望它适用于任何一种调用,来自 CLI 和来自 python 脚本的调用。
【问题讨论】:
-
为什么这被否决/试图关闭?
-
你需要给我们更多的背景信息。您通常在哪里拨打
args=parser.parse_args。 -
@hpaulj 它是从 main 调用的。因此,当从 CLI 调用它时它工作正常,我会将其编辑到我的代码中
-
在
main的情况下,明确您的方法如何访问args。