python 代码模块化_python 基础篇 模块化

在做项目的时候,虽然你不可能把全世界的代码都放到一个文件夹下,但是类似模块化的思想还是要有的——那就是以项目的根目录作为最基本的目录,所有的模块调用,都要通过根目录一层层向下索引的方式来 import。

目录结构

├── env.sh

├── proto

│   └── mat.py

├── src

│   └── main.py

└── utils

└── mat_mul.py

# proto/mat.py

class Matrix(object):

def __init__(self, data):

self.data = data

self.n = len(data)

self.m = len(data[0])

# 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, matrix_2.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)

# 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]]

方法1 将 当前模块的根目录 加入到环境变量 PYTHONPATH,在终端中 执行 source env.sh 使其在终端中临时生效。

# env.sh

#!/bin/bash

export PYTHONPATH=$PYTHONPATH:$(PWD)

方法2 修改 sys.path

import sys

sys.path[0] = '/home/ubuntu/workspace/your_projects'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值