python - 创建对对象属性的引用列表
问题描述
代码中的问题是Vector.numerical_vector是浮点数副本的列表,但我需要它是引用列表,因此当 Vector.vector[n].value 更改时, Vector.numerical_vector[n] 更改为同样的值。
提前感谢您的帮助!
class Var:
def __init__(self, val):
self.value = float(val)
def __float__(self):
return self.value
class Vector:
def __init__(self, vector):
self.vector = vector
self.numerical_vector = [float(x) for x in vector]
vars = [Var(i) for i in range(5)]
vector = Vector(vars)
解决方案
在python中没有办法做到这一点。您可以做的是创建numerical_vector
一个对象,该对象在访问时返回float
相应vector
项目的值。例如
class VectorWrapper:
def __init__(self, vector):
self.vector = vector
def __getitem__(self, i):
return float(self.vector[i])
并设置self.numerical_vector = VectorWrapper(self.vector)
如果您必须在被引用时返回一个float
表示,self.numerical_vector[i]
推荐阅读
- reactjs - 状态中的计数器增量未更新
- python - Python:删除重复项之间的列表中的部分
- java - Spring Data MongoDB GroupOperation 转换为 ObjectID
- git - Git认为分支不是相同的
- mysql - 如何根据不同的列在Mysql中连接两个表并汇总它们的列
- r - 使用 fix() 或 edit() 函数更改 R 中的另一个函数
- macos - Mac chrome 无法添加受信任的站点
- python - 如何在循环外打印项目?
- c# - 使用(DataView dv = dt.DefaultView) 块后下拉列表数据绑定不起作用
- servlets - 如何使 jcaptcha 与 Spring Session 一起使用?