也說說Python中 init

2021-08-28 16:24:36 字數 3280 閱讀 2465

以乙個貓狗識別的程式為例,說說__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...