在做專案的時候,雖然你不可能把全世界的**都放到乙個資料夾下,但是類似模組化的思想還是要有的——那就是以專案的根目錄作為最基本的目錄,所有的模組呼叫,都要通過根目錄一層層向下索引的方式來 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'
SeaJS模組化基礎
測試sea.js 檔案 define function require,exports,module exports.b function btn on click function 對外屬性,也可以通過return語句直接返回介面,甚至簡化為define module.exports 檔案 def...
模組化小基礎
今天整理下模組化,從基本運用到實踐。html直接雙擊開啟會報錯,需要在伺服器下執行。lochost 8080 import 存在於變數提公升。匯出模組如果內容有定時器更改,外面引入內容也會更改。import 語法 不能寫入if 語句之類中的。use strict 預設嚴格模式。基礎1.01.js e...
python的模組化
一 模組化 二 匯入語句 1 import語句 import functools 匯入頂級模組 import os.path 匯入非頂級模組 print dir print functools 匯入頂級模組,其名稱會加入到本地命名空間中,並繫結到其模組物件 匯入非頂級模組,將其頂級模組加入到本地命名...