[英]Call a functionfrom command line with arguments - Python (multiple function choices)
我正在使用Python 3.6,我有一個名為file.py的文件,具有以下兩個功能:
def country(countryName):
print(countryName)
def capital(capitalName):
print(capitalName)
我需要從命令行調用這兩個方法中的任何一個,但是真誠的我不知道該怎么做,還不知道如何使用這種方法。
python file.py <method> <argument>
有人知道該怎么做嗎?
問候!
要在程序中使用命令行參數,可以使用sys.argv。 閱讀更多
import sys
def country(countryName):
print(countryName)
def capital(capitalName):
print(capitalName)
method_name = sys.argv[1]
parameter_name = sys.argv[2]
getattr(sys.modules[__name__], method_name)(parameter_name)
要運行程序:
python file.py capital delhi
輸出:
delhi
您的輸入參數method_name是一個字符串,因此不能直接調用。 因此,我們需要使用getattr
獲取方法句柄。
命令sys.modules[__name__]
獲取當前模塊。 這是file.py模塊。 然后,我們使用getattr
來獲取要調用的方法並對其進行調用。 我們將參數作為“(parameter_name)”傳遞給方法
您可能有一個模塊來檢查您的file.py,將其稱為executor.py,並調整file.py中的方法以處理參數列表
executor.py:
import file
import sys
method = file.__dict__.get(sys.argv[0])
method(sys.argv[1:-1])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.