你怎么称呼这个功能,你可以在Python中为一个函数赋值,然后将参数传递给那个变量?

时间:2017-03-15 18:27:10

标签: php python function

你认为Python的特性在哪里:

  1. 您将函数分配给变量

    myPowerVariable = pow

    mySqrtVariable = math.sqrt

  2. 然后用参数调用该变量?

    myPowerVariable(2,3)

    prints 8

    mySqrtVariable(9)

    prints 3

  3. 如果你在PHP中尝试,它就不会工作,希望有人可以告诉我你称之为这个功能。

    谢谢

3 个答案:

答案 0 :(得分:3)

首先,您的措辞混淆了:您实际上是将功能分配给变量

无论如何,这是Python有first class functions的例子。

答案 1 :(得分:2)

在PHP中,它们被称为Variable functions并且工作正常,假设您使用正确的PHP语法:

$myPowerVariable = 'pow';
echo $myPowerVariable(2, 3);  // prints 8

如果你这样做了:

$myPowerVariable = pow();

你得到:

  

警告:pow()正好需要2个参数,0给定

因为您正在执行pow()并将结果分配给$myPowerVariable但未提供所需的参数。

这是您在评论中提到的Anonymous function的一个简单示例:

$myPowerVariable = function($a, $b) {
    echo pow($a, $b);
};

$myPowerVariable(2, 3);

答案 2 :(得分:1)

这通常被称为functional programming,虽然语法上存在一些差异,但PHP中仍然存在该功能。以下适用于PHP:

function myFunction() {
    echo 'here!';
}

$myVar = 'myFunction';

$myVar();

这也适用于PHP:

class myClass
{
    function myMethod() {
        echo 'here!';
    }
}

$myVariable = ['myClass', 'myMethod'];

call_user_func($myVariable);