使用参数从命令行调用函数-Python(多个函数选项)

使用参数从命令行调用函数-Python(多个函数选项),python,python-3.x,cmd,Python,Python 3.x,Cmd,我使用的是Python 3.6,我有一个名为file.py的文件,有两个函数: def country(countryName): print(countryName) def capital(capitalName): print(capitalName) 我需要从命令行调用这两个方法中的任何一个,但我真的不知道如何做,也不知道用这种方式调用参数 python file.py <method> <argument> python file.py

我使用的是Python 3.6,我有一个名为file.py的文件,有两个函数:

def country(countryName):
    print(countryName)

def capital(capitalName):
    print(capitalName)
我需要从命令行调用这两个方法中的任何一个,但我真的不知道如何做,也不知道用这种方式调用参数

python file.py <method> <argument>
python file.py
有人知道怎么做吗


你好

要在程序中使用命令行参数,可以使用sys.argv

要运行该程序,请执行以下操作:

python file.py capital delhi
输出:

delhi
您的输入参数method_name是一个字符串,因此无法直接调用。因此,我们需要使用
getattr
获取方法句柄


命令
sys.modules[\u\u name\u]
获取当前模块。这是file.py模块。然后我们使用
getattr
获取我们想要调用的方法并调用它。我们将参数作为`(parameter_name)`传递给方法

要在程序中使用命令行参数,可以使用sys.argv

要运行该程序,请执行以下操作:

python file.py capital delhi
输出:

delhi
您的输入参数method_name是一个字符串,因此无法直接调用。因此,我们需要使用
getattr
获取方法句柄


命令
sys.modules[\u\u name\u]
获取当前模块。这是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]) 

您可以使用一个模块来检查file.py,将其称为executor.py,并调整file.py中的方法以处理参数列表

executor.py:

import file
import sys    

method = file.__dict__.get(sys.argv[0])
method(sys.argv[1:-1]) 

可能重复的可能重复的可能重复的非常感谢辛格!:)非常感谢你,辛格!:)