У меня есть метод, который я вызываю из командной строки с помощью argparse. Я также хочу вызвать этот метод из другого метода, в этом случае я получаю сообщение об ошибке, поскольку аргументы args не определены. Есть ли способ обойти это, я попытался установить значение по умолчанию, но получаю ту же ошибку.метод вызова без аргументов из argparse
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.
Почему это нисходящее/попытка закрытия? – Paul
Возможный дубликат [Вызывающие функции с помощью argparse] (http://stackoverflow.com/questions/5050920/calling-functions-with-argparse) – skrrgwasme
Вам нужно предоставить нам больше контекста. Где обычно вызывается 'args = parser.parse_args'. – hpaulj