【问题标题】:A class field as a function pointer in PythonPython中作为函数指针的类字段
【发布时间】:2016-01-18 07:59:32
【问题描述】:

我想在我的类 Point 中有一个函数指针。

class Point:
  coord=[]

  def value(self,p_coord:list=coord):
    return abs(self.val(p_coord))

  def __init__(self,p_coord:list,p_val):
    self.coord=p_coord
    self.val=p_val

我正在尝试将函数指针传递给字段“val”,但是当我尝试使用方法 value() 调用该函数时,它返回 0:

def length(par:list):
  return len(par)

v1=Point([1, 2, 3],length)
print(v1.value())

如何将函数传递给类字段?

【问题讨论】:

    标签: python python-2.7 python-3.x function-pointers first-class


    【解决方案1】:

    value 中的默认值 coord 是第 2 行中的类属性,与 __init__ 中设置的实例属性 self.coord 不同。所以函数指针工作正常,只是查看了错误的列表。

    你可以做的是:

    def value(self, p_coord=None):
        if not p_coord:
            p_coord = self.coord
        return abs(self.val(p_coord))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      • 2021-02-10
      相关资源
      最近更新 更多