首页 > 解决方案 > 用 dict 括在尖括号内的函数引用

问题描述

我是一名初级 Python 程序员,并试图学习语言中的细微差别。我正在尝试可以存储在dict结构中的 values 键中的对象类型。这是我的示例代码:

  myMap = {'a':1,'b':hash}
  def myFun (a,b):
      return a + b
  myMap['c']=myFun
  myMap

这是输出:

{'a': 1, 'b': <function hash(obj, /)>, 'c': <function __main__.myFun(a, b)>}

我想知道为什么函数引用用尖括号括起来。我有一种暗示,这可能是由于与 C 代码有一些相似之处,但我无法得到明确的答案。我在某处读到这表明函数是一个“特殊”对象。但是更详尽的答案将非常有帮助。感谢您的任何建议。

标签: pythonpython-3.xdictionary

解决方案


尖括号通常用于表示与值本身无关的输出部分,而是与与值相关的元数据。

在您的情况下 - 如果不提​​供函数定义,就没有好方法可以在 Python 中表示函数。但是,通过提供函数名称和参数来打印引用<function __main__.myFun(a, b)>函数的信息是一种好方法。

除了一些约定之外,与 C 代码没有任何关系,但我不知道有任何关系。

在控制台中打印 Python 中更复杂对象的值表示由特殊(“魔术”)函数__repr____str__ 根据情况处理


推荐阅读