以乙個貓狗識別的程式為例,說說__init__.py的作用。
在windows的cmd命令列中,使用下面指令把所在路徑下面的所有檔案以樹的形式列出。
tree /f > d:\tree.txt
我手頭上的乙個使用knn進行貓狗分類的專案,包含有以下的檔案。
│ knn.py
├─pet_sample
│ ├─cat1
│ │
│ └─dog1
│
└─pyimagesearch
│ __init__.py
│ __init__.pyc
│ ├─datasets
│ ******datasetloader.py
│ ******datasetloader.pyc
│ __init__.py
│ __init__.pyc
│
└─preprocessing
******preprocessor.py
******preprocessor.pyc
__init__.py
__init__.pyc
主要的檔案有三個knn.py,******preprocessor.py和******datasetloader.py。knn.py是主檔案。使用python knn.py時候會呼叫後面兩個檔案。*.pyc都是編譯時候自動生成的。
******preprocessor.py檔案內容如下:
cv2.waitkey(0)其中下面**的作用就是當使用python ******preprocessor.py呼叫本檔案時,就會執行這段**。若只以引用的方式呼叫本檔案,則不執行保本語句包含的**段。
if __name__ == '__main__':
另外本檔案具有乙個類******preprocessor。為了使別的檔案可以呼叫******preprocessor這個類,需要在******preprocessor.py的所在資料夾中新建乙個__init__.py
檔案內容如下:
__all__ = ['******preprocessor']
from ******preprocessor import *
這樣即可把包含了******preprocessor.py、__init__.py的資料夾preprocessor當作是乙個庫。
同樣的在******datasetloader.py中有兩個類,******preprocessor和******datasetloader。
import numpy as np
import cv2
import os
class ******preprocessor:
# 略class ******datasetloader:
# 略if __name__ == '__main__':
# 略
和******datasetloader.py處於同乙個資料夾的__init__.py中的內容如下:
__all__ = ['******preprocessor', '******datasetloader']
from ******datasetloader import *
這樣就知道datasets資料夾內包含有以下的class(類)。
knn.py是本工程的主檔案。使用python knn.py可以執行本程式。
from sklearn.neighbors import kneighborsclassifier
from sklearn.preprocessing import labelencoder
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from pyimagesearch.preprocessing import ******preprocessor
from pyimagesearch.datasets import ******datasetloader
from imutils import paths
import argparse
if __name__ == '__main__':
# 以下**略
**中的pyimagesearch、preprocessing、datasets都是資料夾,要用from關鍵字。
而import匯入的是類,上面呼叫的******preprocessor和******datasetloader都是類。
之後在pyimagesearch中的__init__.py的內容是:
from datasets import __all__
from preprocessing import __all__
這樣,knn.py就可以找得到所需要的類了。
以上就是本工程的介紹。總的來說,__init__.py作用是形成了類的索引。沒看過書,不知有沒有錯,這就是我的理解了。
參考資料1:python __init__.py 作用詳解
也說說培訓
現在的公司招聘,特別是面向大學畢業生的招聘,很多大學生都會問乙個問題,就是你公司培訓機制怎麼樣。我記得我剛進公司的時候,公司那時候人員雖然數量沒有現在多,不過水平什麼的要比現在好很多。當時剛進公司有3個培訓,第乙個就是日語培訓,這個培訓一直到現在公司還是在做,而且日語老師水平也還不錯,效果也還行。第...
隨便說說 alloc 和 init
先丟擲乙個小問題,然後延伸引入接下來要說的 zuyuclass z zuyuclass alloc zuyuclass z1 z init zuyuclass z2 z init nslog p p p z,z1,z2 思考一下是控制台的輸出是怎麼樣的 思考過後 試一下 z,z1,z2三個物件的位址...
也說說圓角效果
看了許多的精彩 當然是個有個精彩的!但圓角效果幾乎是大家共同的喜好。原因可能是圓角,實現技術不難,對 的整體效果改善卻是顯而易見的。我也有過一些嘗試,但都不算完滿的。從css加到純css,再到js封裝的圓角,對vml,對css sprites 非圓角技術 的嘗試。個個都好,但也個個都有不好的地方。j...