? ?暫時(shí)不對(duì)自己的背景做任何的交代按摘, ?為什么寫這個(gè)系列包券, 參加YC培訓(xùn)課最大的總結(jié)纫谅, 就是別寫別思考了。 ?
? ? 以前的寫的溅固,慢慢搬家過(guò)來(lái)吧付秕。
學(xué)習(xí)計(jì)劃:
? ? ?? ?learn ?python the hard way , nosetest的學(xué)習(xí)。
? ? ?? ? head frist the python 第二章
? ? 知識(shí)點(diǎn):
? ? ? ? ? ? ?nosetest
? 因?yàn)槭强戳藘刹繒坦P(guān)于項(xiàng)目骨架有點(diǎn)亂盹牧,其實(shí)想了想,head first thepython 只是說(shuō)了構(gòu)建包励幼,發(fā)布包汰寓。 如建立setup.py,?
? ? ? pip setup.py ?sdist
? ? ?pip ?setup.py install
?這樣系統(tǒng)會(huì)建立bulid,bin等文件, 但是這是項(xiàng)目骨架嗎苹粟?
書中沒(méi)有說(shuō)到有滑, 另一本書, learn python the hard way , 提到的項(xiàng)目骨架也沒(méi)有說(shuō)撒是項(xiàng)目骨架。?
百度了一下嵌削,也沒(méi)有具體的定義毛好, 不如自己定義,就是一個(gè)python模塊正常所需要的模塊框好了苛秕。
project(主目錄)
? ? ? ? ? ?- lixiang(系列目錄)
? ? ? ? ? ? ? ? ? ?- ?setup.py
? ? ? ? ? ? ? ? ? ?_ ? projectname
? ? ? ? ? ? ? ? ? ? ? ? ? __init__.py
? ? ? ? ? ? ? ? ? ?- ? bin
? ? ? ? ? ? ? ? ? ? ?-docs
? ? ? ? ? ? ? ? ? ? ? -tests
? ? ? ? ? ? ? ? ? ? ? ? ? __init__.py
? ? ? ? ? ? ? ? ? ? ? ? ? name_test.py
? ?以上是一個(gè)項(xiàng)目骨架的結(jié)構(gòu)肌访, 也許這是一個(gè)行業(yè)的慣例,也許是一個(gè)作者的習(xí)慣艇劫,作為一個(gè)新手吼驶,這個(gè)地方不影響繼續(xù)學(xué)習(xí),存疑吧店煞,不深究蟹演。(?)
?macos ?下面的命令:
?mkdir project
cd ?project
mkdir ?lixiang
cd ?lixiang
mkdir projectname
mkdir bin
mkdir ?tests
mkdir docs
touch ?projectname/__init__.py
touch ?tests/__init__.py
? 目錄下顷蟀, 建立setup.py , 看這里酒请。?
? ?tests 建立test.py .
? ? ??: __init__.py 是什么?
? ? ? 學(xué)習(xí)一個(gè)原則: 吸引你進(jìn)行下一步操作嗎鸣个? ? 不影響
? ? ? ?這個(gè)百度一下理解超過(guò)10分鐘羞反。
?百度一下:
在 python 中,如果當(dāng)前目錄中存在有 __init__.py 文件囤萤,則表示該目錄為一個(gè)包(package)昼窗,在包中,引用同級(jí)目錄或子目錄中的其它模塊非常簡(jiǎn)單阁将,直接使用 import 語(yǔ)句即可
同級(jí)目錄下膏秫,沒(méi)有__init__.py ?, 一樣可以導(dǎo)入。
? 學(xué)海無(wú)涯缤削, 你要問(wèn)為什么這個(gè)有這個(gè)功能窘哈? 這個(gè)就是python的語(yǔ)法結(jié)構(gòu)了, 研究這個(gè)似乎不是我們學(xué)習(xí)的主要目的亭敢,有些東西的理解必須等到自己全盤了解才知道滚婉。
? 學(xué)會(huì)克制好奇心也是非常重要的
? ?根據(jù)書中, 輸入nosetests, 發(fā)現(xiàn)幾個(gè)問(wèn)題帅刀, 在test目錄下让腹,或者刪除__init__.py , test.py , nosetests的traceback 都沒(méi)反應(yīng)扣溺。骇窍。
-------------------------------------------------------
Ran 0 tests in 0.000s
OK
?運(yùn)行0個(gè)tests測(cè)試,這應(yīng)該是缺乏test.py的原因锥余。
?加入test.py ,
from nose.tools import *
import printlist
def setup():
? ? ? ?print "setup!"
def teadown():
? ? ? print "tear down!"
def test_basic():
? ? ?print " I ?RAN!"
? ? 測(cè)試nosetests ?發(fā)現(xiàn)了
======================================================================
ERROR: Failure: ImportError (No module named printlist)
-------------------------------------------------------
?在test目錄上看看腹纳,nosetests
----------------------------------------------------------------------.
Ran 1 test in 0.007s
?看到了嗎, 測(cè)試了一個(gè)test. 我們來(lái)刪除printlist下的 __init__.py
rm -f ?printlist/__init__.py?
發(fā)現(xiàn)沒(méi)有出錯(cuò)
繼續(xù):ls -R
?發(fā)現(xiàn)
./printlist:
__init__.pyc
還是依舊無(wú)任何影響驱犹,__init__.py嘲恍, 存在有何意義? ?
不懂雄驹,繼續(xù)吧刁品。
可以留下來(lái)脚翘, 在社區(qū)中提問(wèn), 還說(shuō)繼續(xù)前進(jìn)吧躬充。
?看到書中的一句話, 有沒(méi)有實(shí)際的代碼給讀者看柒桑。 作者回答很多python項(xiàng)目用了類似的結(jié)構(gòu)诉濒,這個(gè)證明了汗唱,項(xiàng)目骨架沒(méi)有統(tǒng)一的格式屡拨。?
本課未解決: __init__.py 存在的 意義?娃胆?