python - Python 中作为函数指针的类字段

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

我想在我的 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())

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

最佳答案

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

您可以做的是:

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

关于python - Python 中作为函数指针的类字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33223444/

相关文章:

python - python 中的正则表达式,这可以改进吗?

mysql - 为什么MySql只保存字符串的第一个字符? (我使用的是Python 3)

python - 按索引删除多个 Pandas 列

python - 如何获取 Python 模块中所有非导入名称的列表?

python - 将 python 编译为单个 .exe,为什么这么难?

python 文件输入查找和替换行

python - Django:导入错误:没有名为 social.apps.django_app 的模块

python - Python 中的彭博 API : How to Get Historical Reference Data

python - 推特(Tweepy): What counts as a search API call?

python - 二维矩阵到圆锥图像