小编kek*_*kel的帖子

传递带有“隐式”参数的函数

我正在使用 Python 包中的一个类,我向该类传递必须只有一个参数的函数,例如:

def exampleFunction1(only_argument_1):
    
    doSomething1(only_argument_1) #perform some operations

Run Code Online (Sandbox Code Playgroud)

然后,一旦以上述方式定义了所有需要的函数,我需要以这种方式传递它们:

python_package_class.function1 = exampleFunction1
python_package_class.function2 = exampleFunction2
python_package_class.function3 = exampleFunction3

Run Code Online (Sandbox Code Playgroud)

现在让我们假设 doSomething 对于我的所有函数都是相同的,除了它需要另一个可以更改的参数这一事实,例如(1、2 和 3 只是示例,参数可以是任何内容):

def exampleFunction1(only_argument_1):
    
    doSomething(1, only_argument_1) #perform some operations

def exampleFunction2(only_argument_2):
    
    doSomething(2, only_argument_2) #perform some operations

def exampleFunction3(only_argument_3):
    
    doSomething(3, only_argument_3) #perform some operations

Run Code Online (Sandbox Code Playgroud)

通过仅定义一个 exampleFunction并向其传递两个参数,可以大大简化这一过程:

def exampleFunction(a, only_argument_1):
    
    doSomething(a, only_argument_1) #perform some operations

Run Code Online (Sandbox Code Playgroud)

但是,不幸的是,这会给我带来一个错误,因为正如我所说,我正在使用的 Python 包严格要求函数只接受一个参数。

所以我的问题是,是否有一种“隐式方式”将参数传递 a 给以下代码行中的 exampleFunction ?

python_package_class.function1 = exampleFunction
Run Code Online (Sandbox Code Playgroud)

python arguments function python-3.x

5
推荐指数
1
解决办法
2736
查看次数

标签 统计

arguments ×1

function ×1

python ×1

python-3.x ×1