0

我知道当这些功能指代其他功能时,内在名称被分配以指代功能。例如: f=max 是 f 固有名称还是 max?

4

3 回答 3

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>'
>>>
于 2013-09-08T23:56:10.293 回答
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 ”。

于 2016-09-10T15:07:26.960 回答
0

最好看看框架。

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

全局框架

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

最大:3

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

于 2021-06-01T01:25:03.903 回答