预定义函数的参数

时间:2018-04-04 18:42:10

标签: python python-3.x function python-2.x

我需要预先定义函数的参数一次,然后在其他地方使用该函数而不将参数传递给它们。

像这样:

@predef  
def foo(x):
    print(x)

foos = foo("hello"), foo("world")

for f in foos:
    f()

>> hello
>> world

一切都按我的意愿运作。但装饰师看起来很棘手。

def predef(f):
    def decorator(*args, **kwargs):
        def wrapper(*args, **kwargs):
            while True:
                yield f(*args, **kwargs)
        return wrapper(*args, **kwargs).__next__
    return decorator

我觉得有更简单的方法可以做到这一点。是吗?

1 个答案:

答案 0 :(得分:3)

对于您的具体示例:

>>> foos = lambda: print('hello'), lambda:print('world')
>>> for f in foos: f()

hello
world