在Python中将函数存储为变量

时间:2018-01-14 00:17:14

标签: python function variables

我是Python的新手,我正在为我的Raspberry Pi创建一个转换器来获取输入,然后用LED输出摩尔斯电码。我有一个功能,将准确输出我选择的字母摩尔斯电码。我试图将带有参数的函数分配给变量,以便更快地访问。 a=letter(dot, dash)但是当我尝试将它存储为运行具有这些参数的函数时,我也无法用类似()来调用它。可能有一个简单的解决方案,但我似乎无法弄明白。如果需要更多信息,我可以给你。谢谢你的帮助。

4 个答案:

答案 0 :(得分:1)

是的,您可以使用partial

from functools import partial

a = partial(letter, dot, dash)

Partial构造一个新函数。如果调用该函数,它将使用letterdot调用dash。如果您使用参数调用a,则会在末尾添加这些参数(未命名参数),并更新命名参数。

答案 1 :(得分:1)

你需要什么称为currying,绑定参数返回新函数的函数。或部分申请。哪个是您问题的解决方案:

from functools import partial 
a = partial(func, arg1, arg2)

答案 2 :(得分:1)

您可以将变量设置为函数,然后将该变量用作函数的名称。这是一个例子:

def cube(number):    
    return number ** 3

make_cube = cube    # Take out those parentheses

现在,变量make_cube可以用作函数,如下所示:

print(make_cube(2))
# 8

cubemake_cube都指向相同的内存地址,您可以使用id(make_cube) == id(cube)确认。

在您的情况下,它可以是:

a = letter
a(dot, dash)

答案 3 :(得分:0)

您还可以将函数表达式编写为字符串,稍后使用eval编写。

a = "letter(dot, dash)"
eval(a)

(不需要导入模块)