單模組化
檔案結構:
.
├── utils
│ ├── util.py
│ └── class_util.py
├── src
│ └── sub_main.py
└── main.py
'''
'''# utils/utils.py
defget_sum
(a, b)
:return a + b
# utils/class_utils.py
class
encoder
(object):
defencode
(self, s)
:return s[::
-1]class
decoder
(object):
defdecode
(self, s)
:return
''.join(reverse(
list
(s))
)
'''
'''# main.py
from utils.utils import get_sum
print
(get_sum(1,
2))########## 輸出 ##########
3
# src/sub_main.py
import sys
".."
)from utils.class_utils import
*encoder = encoder(
)decoder = decoder(
)print
(encoder.encode(
'abcde'))
print
(encoder.encode(
'edcba'))
########## 輸出 ##########
edcba
abcde
專案模組化
以下python**用命令列執行main.py會出錯,找不到proto.
├── proto
│ ├── mat.py
├── utils
│ └── mat_mul.py
└── src
└── main.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
defmat_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 =[[
0for _ 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.在檔案中強行修改sys.path[0]:
import sys
sys.path[0]
='/home/ubuntu/workspace/your_projects'
2.在python的虛擬環境中的activate檔案,增加:(windows系統中無效)
export pythonpath=
"/home/ubuntu/workspace/your_projects"
python 基礎篇 模組化
在做專案的時候,雖然你不可能把全世界的 都放到乙個資料夾下,但是類似模組化的思想還是要有的 那就是以專案的根目錄作為最基本的目錄,所有的模組呼叫,都要通過根目錄一層層向下索引的方式來 import。目錄結構 env.sh proto mat.py src main.py utils mat mul....
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...