【问题标题】:What is the intrinsic name of a function?函数的内在名称是什么?
【发布时间】:2023-04-06 19:59:01
【问题描述】:

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

【问题讨论】:

  • “内在名称”是什么意思?
  • 我不确定。这就是我需要澄清的原因。

标签: python function python-3.x


【解决方案1】:

如果您指的是__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>'
>>>

【讨论】:

    【解决方案2】:

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

     def square(x):
         return x * x
    

    在此def 语句中,创建函数和分配名称同时发生,此def 语句为函数提供了一个固有名称。 square 在这里是“功能广场”。

     square = lambda x : x * x
    

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

    【讨论】:

      【解决方案3】:

      最好看框架。

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

      全局框架

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

      最大:3

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-05
        • 2020-08-28
        • 2014-07-01
        • 2011-08-23
        • 2019-10-10
        • 1970-01-01
        • 1970-01-01
        • 2012-06-15
        相关资源
        最近更新 更多