我的問題的簡單版本是這樣的:
我的問題的簡單版本是這樣的:
def function_1(x, function)。
print(x)
函式()
def function_2(y)。
print(2*y)
def function_3(z, n)。
print(3*z)
print(5 * n)
function_1(5, function_2)
function_1(3, function_3)
我的問題是,當呼叫function_1時,我如何給它一個引數,這個引數將被添加到被呼叫的函式(function_2或function_3)中作為一個引數? 我是初學者。謝謝。
uj5u.com熱心網友回復:
你可以使用functools.partial:
from functools import partial
...
function_1(5, partial(function_2, 5)
function_1(3, partial(function_3, 2, 3)
partial讓你傳遞一個物件給function_1,它可以在沒有傳遞引數的情況下被呼叫。
uj5u.com熱心網友回復:
正如Kacper建議的那樣,Python提供了使用任意位置引數串列(args)和關鍵字引數dicts(kwargs)的可能性:
def fun_x(x, a_callable, *args, **kwargs)。
print(x, a_callable, args, kwargs)
a_callable(*args, **kwargs)
def fun_y(a,b,kwarg1)。
print(a,b,kwarg1)
fun_x(3,fun_y, "第一", "第二", kwarg1="第三")
3 <function fun_y at 0x000001D1E0E02378> ('first', 'second') {'kwarg1': 'third'}
第一 第二 第三
uj5u.com熱心網友回復:
你是指在引數中加入x嗎?
def function_1(x, function)。
print(x)
函式(x)
...
uj5u.com熱心網友回復:
如果你想使用相同的引數x到function_1作為內部呼叫函式的引數,你可以使用:
<代碼 def function_1(x, function): print(x) function(x)或者你想為內部呼叫的函式使用另一個引數y,那么你可以像下面這樣使用:
def function_1(x,y,function):
print(x)
function(y)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/326659.html
標籤:
上一篇:Java中將字串轉換為鍵值對
