Python变量不能与它在PHP中调用的函数同名吗?

时间:2014-09-08 07:21:32

标签: python

在PHP中

这是可能的:

function a():
   return "b"

 a = a()

但在python中..我别无选择,只能将变量的名称更改为其他内容..

 a1 = a()

""只需要吃" a"从而成为" a"是。和新的" a"它吃的是" a()"功能的输出。

为什么这个逻辑在python中被忽略而不是在php?

2 个答案:

答案 0 :(得分:2)

在PHP变量和函数中使用不同的语法。变量是$a,函数只是a,所以没有混淆。

在Python中,函数和变量使用相同的语法并共享相同的命名空间。如果你这样做:

a = a()

然后a将不再包含函数,它将包含调用函数的结果。

基本上,命名函数只是一个值为函数的变量。

答案 1 :(得分:1)

Python(与PHP不同)为变量和函数设置了单独的命名空间。

当你在Python中调用一个函数时,你实际上只是计算一个表达式(例如a),它评估一个函数对象,然后调用函数(例如()) - 这是因为Python有first-class functions

因此,如果变量(可以引用只是一个值的函数)被赋予不同的值,那么它将评估为该新值。

但是,在PHP中,当进行函数调用时,它会在函数命名空间中查找函数(与变量名称空间不同),然后调用它。变量以PHP代码中的$开头,这有助于使它们看起来与函数名称不同,但内部仍然使用different namespaces不重叠。命名空间还有其他重大差异,例如。功能总是"全球"。