anancds / document

MIT License
1 stars 0 forks source link

python module #87

Open anancds opened 4 years ago

anancds commented 4 years ago

说到最简单的模块化方式,你可以把函数、类、常量拆分到不同的文件,把它们放在同一个文件夹,然后使用 from your_file import function_name, class_name 的方式调用。之后,这些函数和类就可以在文件内直接使用了

anancds commented 4 years ago

. ├── proto │ ├── mat.py ├── utils │ └── mat_mul.py └── src └── main.py

anancds commented 4 years ago

# proto/mat.py

class Matrix(object): def init(self, data): self.data = data self.n = len(data) self.m = len(data[0])

anancds commented 4 years ago

# utils/mat_mul.py

from proto.mat import Matrix

def mat_mul(matrix_1: Matrix, matrix_2: Matrix): assert matrix_1.m == matrix_2.n n, m, s = matrix_1.n, matrix_1.m, matrix2.m result = [[0 for in range(n)] for _ in range(s)] for i in range(n): for j in range(s): for k in range(m): result[i][k] += matrix_1.data[i][j] * matrix_2.data[j][k]

return Matrix(result)
anancds commented 4 years ago

# src/main.py

from proto.mat import Matrix from utils.mat_mul import mat_mul

a = Matrix([[1, 2], [3, 4]]) b = Matrix([[5, 6], [7, 8]])

print(mat_mul(a, b).data)

########## 输出 ##########

[[19, 22], [43, 50]]