我知道当这些所述函数引用其他函数时,指定内部名称来引用函数。 例如:f = max是内在名称还是最大?
答案 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。那是内在的名字!