如何在存储函数时传递预定义的参数

Ric*_*les 1 python arguments

是否可以存储具有预定义参数的函数以供另一个函数调用?

例如:

def function(num):
    print num

trigger=function #store function(1)
trigger()        #prints 1

trigger=function #store function(2)
trigger()        #prints 2
Run Code Online (Sandbox Code Playgroud)

触发调用存储的任何内容而不传递任何参数.我可以更改触发器,但这需要我重写调用触发器的函数,所以我想知道在将函数存储在变量中时是否存在将函数与参数一起存储的方法.

Raf*_*ros 6

您正在寻找functools.partial:

>>> import functools
>>> def foo(number):
...     print number
... 
>>> bar = functools.partial(foo, 1)
>>> bar()
1
Run Code Online (Sandbox Code Playgroud)