在MATLAB中,可以使用类似以下内容创建 function handles
myfun=@(arglist)body
这样,您可以在旅途中创建函数,而无需创建M文件。
Python中是否有等效的方法可以在一行中声明函数和变量并在以后调用它们?
最佳答案
Python的lambda函数有些相似:
In [1]: fn = lambda x: x**2 + 3*x - 4
In [2]: fn(3)
Out[2]: 14
但是,您可以通过简单地将
fn()
定义为一个函数来实现类似的效果:In [1]: def fn(x):
...: return x**2 + 3*x - 4
...:
In [2]: fn(4)
Out[2]: 24
“普通”(与lambda相对)功能更灵活,因为它们允许条件语句,循环等。
无需将功能放置在专用文件或任何其他性质的文件中。
最后,Python中的函数是一流的对象。这意味着,除其他外,您可以将它们作为参数传递给其他函数。这适用于上面显示的两种功能。
关于Python函数句柄ala Matlab,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5743291/