在python引入包時,我們會發現有這樣的一種引用方法:
from . import xx
,以及from .. import xx
.
這就是相對路徑引用.
其中有幾點需要注意.
1.
在編譯時,存在這種相對引用的.py
是無法被單獨編譯
的,只有在編譯最高端的.py
時,才不會報編譯級別錯誤
.
2.
存在跨資料夾引用
時,需要在相應資料夾內建立乙個__init__.py
才可以引用成功,(就算該檔案是空的也沒關係
)因為加了這個檔案,編譯器才會把該資料夾看做乙個package
,即可以用from 資料夾名 import 類/檔案
等方式進行引用.
3.
在主程式執行後,呼叫每個包時會先呼叫該包的__init__.py
檔案,然後再呼叫對應import
的內容.
這裡我結合上一節的factory method
編寫了乙個簡單的測試程式:
具體目錄結構如下:
--工廠函式/
--tests/
--abc/
--__init__.py
--qb.py
--__init__.py
--test2.py
--test.py(主程)
執行test.py
,result:
test.py
:
from tests.abc.qb import crete_factory_method
factory_test = crete_factory_method('這是第乙個單元測試')
factory_test2 = crete_factory_method('這是第二個單元測試')
factory_test.print_str()
factory_test2.print_str()
tests/__init__.py
:
print("i'm tom's __init__!")
tests/test2.py
:
class
mq(object):
def__init__
(self,string_c):
self.config_str=string_c
defprint_str
(self):
print(self.config_str)
tests/abc/__init__.py
:
print('由此可知,如果直接編譯qb.py會報錯,因為等級?錯誤,但是直接編譯最頂層的test.py就不會報錯了.')
tests/abc/qb.py
:
from ..test2 import mq
defcrete_factory_method
(config_str):
tp=mq(config_str)
return tp
python Flask 擴充套件
flask有兩大核心 werkzeug和jinja2。werkzeug實現路由 除錯和web伺服器閘道器介面。jinja2實現了模板。flask框架是以werkzeug為基礎實現的。werkzeug是乙個遵循wsgi協議的python函式庫。其內部實現了很多web框架底層的東西,比如request和...
起步,Python Flask記錄
首次寫部落格,主要為記錄一下這幾天來一直在學習的乙個python的框架flask。安裝flask需要用到pip或easy install 可選擇是否使用virtuanlenv安裝框架,這種安裝方式需要每次啟動時,都要進入python虛擬環境中。用命令 pip install virtualenv 安...
Python Flask學習報告
from flask import flask defindex return def user name return format name defindex pass from flask import make request response make request response.s...