python - 如何扩展一个类是Python
问题描述
我是学习 Python 的新手。我一直在编写一个数组类并创建许多方法来操作数组。这很有趣。为了说明这一点,我创建了一个网格类来创建一个二维数组。但现在我坚持这条指令:
“开发一个使用内置算术运算符的矩阵类(这是用于矩阵算术的)。矩阵类应该扩展网格类。”
我对如何计算网格之间的算术很有信心。但是,我不明白在矩阵类中扩展网格类的部分。只是玩弄它,我的矩阵类中有这段代码:
from grid import Grid
class Matrix:
def __init__(self, rows, columns, fillValue):
self.data = Grid(rows, columns, fillValue)
这是我的网格类:
"""
File: grid.py
"""
from arrays import Array
class Grid(object):
"""Represents a two-dimensional array."""
def __init__(self, rows, columns, fillValue = None):
self.data = Array(rows)
for row in range(rows):
self.data[row] = Array(columns, fillValue)
def getHeight(self):
"""Returns the number of rows."""
return len(self.data)
def getWidth(self):
"Returns the number of columns."""
return len(self.data[0])
def __getitem__(self, index):
"""Supports two-dimensional indexing with [][]."""
return self.data[index]
def __str__(self):
"""Returns a string representation of the grid."""
result = ""
for row in range(self.getHeight()):
for col in range(self.getWidth()):
result += str(self.data[row][col]) + " "
result += "\n"
return result
def main():
g = Grid(10, 10, 1)
print(g.getHeight())
if __name__ == "__main__":
main()
我对如何在矩阵类中正确扩展网格类感到困惑。我理解导入声明的重要性;但是,我对如何正确编写我的构造函数有点困惑,以便这个语句
m1 = Matrix(3, 3, 2)
print(m1)
会将这些参数传递给网格类并正确创建网格。例如,打印语句给出了这样的输出:<__main__.Matrix object at 0x000001CD65A77970>
如果我理解正确,那应该打印出一个实际的数字网格,我不知道为什么它不是。任何想法肯定会帮助我!
解决方案
推荐阅读
- nosql - 将多字符“~|^”分隔文件的 MLCP 摄取到 Marklogic 中
- ansible - 当 Ansible 尝试使用私钥通过 ssh 连接到计算机时,我收到“无法通过 ssh 连接到主机”错误
- php - 仅为用户控制对 codeigniter 中媒体文件的访问
- javascript - 在 Vuejs 项目中使用 jsPDF 和 html2canvas(没有 webpack)
- ruby-on-rails - 如何为所有项目全局安装 pry/pry-rails?
- sql - 如何在 SQL Server 中获取一个月的天数
- javascript - Mongoose 自定义密码验证
- java - 分拣 - 速度和性能
- c# - 如何在 RavenDB 中不给定索引的情况下删除集合?
- jquery - 无法获取下拉选择值