微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以使用@property 装饰器创建返回矩阵或向量大小的属性只读!?

如何解决是否可以使用@property 装饰器创建返回矩阵或向量大小的属性只读!?

在问题中,我想知道如何(如果可以的话)我可以创建一个属性来为我提供矩阵大小,但我想使用 property 装饰器来实现。

在这个例子中,是否可以使用这样的装饰器?

class Matrix:
    def __init__(self,m,n,init=True):
        if init:
            self.rows = [[0] * n for x in range(m)]
        else:
            self.rows = []
        self.m = m
        self.n = n


    def __getitem__(self,idx):
        return self.rows[idx]

    def __setitem__(self,idx,item):
        self.rows[idx] = item

我仍在探索语法,我想在这方面得到一些建议。

解决方法

你想做的很简单——教科书上的琐碎——所以不清楚你想要什么“建议”。 Stack Overflow 并不打算取代现有的教程或文档。见How much research effort is expected of Stack Overflow users?

class Matrix:
    def __init__(self,m,n,init=True):
        if init:
            self.rows = [[0] * n for x in range(m)]
        else:
            self.rows = []
        self.m = m
        self.n = n

    def __getitem__(self,idx):
        return self.rows[idx]

    def __setitem__(self,idx,item):
        self.rows[idx] = item

    @property
    def size(self):
        return self.m * self.n


if __name__ == '__main__':

    mat = Matrix(3,3)
    print(mat.size)  # -> 9

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。