函数的内在名称是什么?

时间:2013-09-08 23:51:53

标签: python function python-3.x

我知道当这些所述函数引用其他函数时,指定内部名称来引用函数。 例如:f = max是内在名称还是最大?

3 个答案:

答案 0 :(得分:6)

如果您的意思是__name__属性,那么它就是创建该函数的def语句中使用的名称。

Python 3.3.1 (v3.3.1:d9893d13c628, Apr  6 2013, 20:25:12) [MSC v.1600 32 bit (In
tel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> def f ():
...     return 0
...
>>> f.__name__
'f'
>>> g = f
>>> g.__name__
'f'
>>>

内置函数具有与其预设名称匹配的__name__属性。

>>> max.__name__
'max'
>>> h = max
>>> h.__name__
'max'
>>>

def语句之外的其他方式创建的函数可能具有__name__属性的默认值。

>>> (lambda: 0).__name__
'<lambda>'
>>>

答案 1 :(得分:1)

您可以将内在名称视为用户定义的def函数的名称。考虑将函数绑定到名称square的两种方法:

 def square(x):
     return x * x

在此def语句中,创建函数和赋值名称同时发生,此def语句为函数提供内在名称。 square在这里是“功能方块”。

 square = lambda x : x * x

然而,lambda创建了一个函数lambda x : x * x ,但没有一个名称。赋值语句square =将该函数的值赋给该名称。 square在这里是“函数 lambda ”。

答案 2 :(得分:0)

最好看看框架。

f = max
max = 3
f(2,3,4)

全局框架

f ----------------> func max(...) # 对象

最大:3

请注意,函数对象表示 max。那是内在的名字!