python - 类似于列表/元组的 setter 和 getter

标签 python numpy getter-setter correctness

我有一个使用 Numpy 的项目。其中一个类需要一组称为权重的矩阵。出于多种原因,最好将所有这些矩阵值存储为一个长向量,并让每个单独的矩阵成为其切片的 View 。

self.weightvector = asmatrix(rand(nweights, 1)) # All the weights as a vector
self.weights = list() # A list of views that have the 'correct' shape

for i in range(...):
    self.weights.append(...)

如果类的用户执行类似 foo.weights[i] = bar 的操作,那么这些权重将不再是原始权重向量的 View 。

Python 是否提供了一种机制来定义 getter 和 setter,以便在诸如 foo.weights[i] = bar 之类的索引完成时定义 getter 和 setter?

最佳答案

当然。您想重写类上的 __setitem__ 方法。

class Weights(list):

    def __setitem__(self, key, value):
         ....

这是文档的链接:
http://docs.python.org/2/reference/datamodel.html#object.__setitem__

关于python - 类似于列表/元组的 setter 和 getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15001633/

相关文章:

python - 子集和组合不同长度数组的有效方法

python - 通过 Okta 身份验证使用 Databricks Snowflake 连接器连接到 Snowflake

python - Scrapy shell : How to execute multiple lines of code in shell?

python - Python中的模块和库有什么区别?

Java - 赋值的左侧必须是变量

javascript - 在 IE 中使用 javascript getter 和 setter 时出错

python - 在 Python 中向量化 2D 数组的 1D 中值滤波器

python - 如何找到距其他三个点特定距离的点的坐标?

python - 堆叠具有重叠索引的数组。寻找循环上的矢量化方法

android - Android 中的最佳实践是什么,创建新的字符串对象(静态最终)还是仅使用 string.xml 文件(并调用许多 getter)?