Python包、模块、类以及遇到的问题
最近敲代碼的時(shí)候主要遇到兩大問(wèn)題,第一個(gè)是構(gòu)造自己包的時(shí)候找不到package。構(gòu)造自己package談兩條經(jīng)驗(yàn),有助于解決這個(gè)問(wèn)題。
- 1 自己構(gòu)造包的名稱盡量不要和Python自帶的包重名,起的名字個(gè)性化一點(diǎn)。要不然出的bug都不知道錯(cuò)在哪
- 2 只要打算把這個(gè)文件夾當(dāng)成一個(gè)包,就一定要在這個(gè)文件夾同一目錄下新建一個(gè)__init__.py文件(內(nèi)容可以為空)
一般來(lái)說(shuō)注意這兩點(diǎn),構(gòu)建包就不成問(wèn)題。
在包的文件夾里面的.py文件稱之為模塊(文件名就是模塊名),當(dāng)然包里也可能有子包,即使如此,每個(gè)包里.py文件也是模塊(除了帶雙下劃線的那種)
在模塊文件里,可以寫函數(shù),屬性或者類。那么如何調(diào)用這些函數(shù)、屬性或者類呢?
調(diào)用函數(shù)十分簡(jiǎn)單,策略就是import 模塊.函數(shù)或者 from 模塊 import 函數(shù),如果想類實(shí)例化為對(duì)象,可以寫成
from 模塊 import 類 a = 類()但是一定要注意,不能把模塊實(shí)例化為對(duì)象,他不是類,否則會(huì)報(bào)錯(cuò)’module’ object is not callable。一般來(lái)說(shuō),出這種錯(cuò),半天找不到原因,主要是代碼規(guī)范做的不夠好。把模塊名稱和類名稱寫的一樣了,以為import模塊就可以了,實(shí)際上并不是這樣。比如我想調(diào)用一個(gè)叫haha的類并實(shí)例化為對(duì)象,寫了一個(gè)haha.py文件,在里面定義haha類,那么實(shí)例化對(duì)象的時(shí)候應(yīng)該這樣寫(假設(shè)包是MyCode):
from MyCode import haha a = haha.haha()或者寫成這樣
from MyCode.haha import haha a = haha()這樣寫都不是很好,總之,最好不要把模塊名稱和類名稱寫的一樣
總結(jié)
以上是生活随笔為你收集整理的Python包、模块、类以及遇到的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: imutils用法总结
- 下一篇: Python剑指offer:分行从上到下