class 字段作为 Python 中的函数指针
A class field as a function pointer in Python
我想在我的 class 点中有一个函数指针。
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() 调用该函数时,它 returns 0:
def length(par:list):
return len(par)
v1=Point([1, 2, 3],length)
print(v1.value())
如何将函数传递给 class 字段?
value
中的默认值 coord
是第 2 行中的 class 属性,它与 [=14= 中设置的实例属性 self.coord
不同].所以函数指针工作正常,它只是看错了列表。
您可以做的是:
def value(self, p_coord=None):
if not p_coord:
p_coord = self.coord
return abs(self.val(p_coord))
我想在我的 class 点中有一个函数指针。
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() 调用该函数时,它 returns 0:
def length(par:list):
return len(par)
v1=Point([1, 2, 3],length)
print(v1.value())
如何将函数传递给 class 字段?
value
中的默认值 coord
是第 2 行中的 class 属性,它与 [=14= 中设置的实例属性 self.coord
不同].所以函数指针工作正常,它只是看错了列表。
您可以做的是:
def value(self, p_coord=None):
if not p_coord:
p_coord = self.coord
return abs(self.val(p_coord))