簡體   English   中英

從命令行使用參數調用函數-Python(多種函數選擇)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM