如何解决是否可以使用@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 举报,一经查实,本站将立刻删除。