0
我有一個使用位置命令行參數(使用argparse)並在此參數上執行函數的Python(3.4)模塊(稱爲'file_1.py'):從具有位置命令行參數的Python模塊導入函數
# set up command line parser
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('n', '--number', type=int, required=True, help='some number')
# read command line argument
args = parser.parse_args()
parsed_number = args.number
# function to do some math
def add_one_to_number(x)
return x+1
# use the function
print(add_one_to_number(parsed_number))
現在,進口和從另一模塊( 'file_2.py')調用函數,
from file_1 import add_one_to_number
print(add_one_to_number(1))
,當我得到的錯誤file_2: error: the following arguments are required: -n/--number
我知道這是因爲導入的代碼是在使用import語句後執行的,因此需要位置命令行參數。但是,有沒有辦法導入該函數,而不以任何方式將位置命令行參數傳遞給file_1?背景是我想對函數做一些單元測試,並且據我所知,測試像我的函數這樣的代碼單元不應該依賴於傳遞的命令行參數。