Python3入門 | 枚舉類株扛、模塊、包汇荐、類
作者的話
通常我們需要表示一些日常事物洞就,但是表達(dá)形式又不想太復(fù)雜,比如掀淘,我們QQ使用的紅鉆奖磁、綠鉆、黃鉆和黑鉆繁疤,然后想通過1咖为,2,3稠腊,4分別代替躁染,但是在代碼中使用1,2架忌,3吞彤,4,對(duì)于代碼的可閱讀性會(huì)非常差叹放,從而就有了枚舉類饰恕,如果還是不能很好的理解,那么我們?cè)诤竺鎸W(xué)習(xí)枚舉類的時(shí)候就能夠更好地理解井仰。對(duì)于包和模塊要區(qū)分好埋嵌,學(xué)會(huì)寫類和使用類。
枚舉類的基本表達(dá)
from enum import Enum
class VIP(Enum):
YELLOW = 1
GREEN = 2
BLACK = 3
RED = 4
print(VIP.YELLOW)
# 結(jié)果是輸出 VIP.YELLOW
由此可以很清晰的看出俱恶,枚舉實(shí)際上是一個(gè)類雹嗦,而我們自定義的枚舉類就是繼承了Enum這個(gè)類
包和模塊
兩者都可能表現(xiàn)形式都是文件夾,會(huì)存在細(xì)微的差別合是,多個(gè)模塊會(huì)組成包了罪。
模塊還可以就是指單個(gè)py文件,我們?nèi)绻麑?duì)于一個(gè)簡(jiǎn)單的功能聪全,只需要一個(gè)文件就可以完成泊藕,那么這個(gè)功能就用一個(gè)py構(gòu)成叫做一個(gè)模塊,如果這個(gè)功能很復(fù)雜难礼,一個(gè)py文件并不能完整的實(shí)現(xiàn)娃圆,而需要多個(gè)文件結(jié)合汽久,這時(shí)候這些py文件存在的文件夾就成了一個(gè)模塊.
文件夾和包 區(qū)別在于 在包下會(huì)有sinit.py文件
包下面是可以存在子包的,子包下也可以有它的子包
導(dǎo)入包
import 模塊名
例:
存在一個(gè)模塊
# file : spam.py
a = 37 # 一個(gè)變量
def foo: # 一個(gè)函數(shù)
print "I'm foo"
class bar: # 一個(gè)類
def grok(self):
print "I'm bar.grok"
b = bar()
測(cè)試模塊
# ceshi.py
import spam # 導(dǎo)入并運(yùn)行模塊 spam
print spam.a # 訪問模塊 spam 的屬性
spam.foo()
c = spam.bar()
總結(jié)下來就是踊餐,import 導(dǎo)入某個(gè)模塊景醇,通過模塊名.* 在選擇使用的對(duì)象
如果包路徑很深怎么辦,那么我們使用as關(guān)鍵字進(jìn)行簡(jiǎn)化
存在一個(gè)模塊
# file : spam.py 位于 a/b下面
a = 37 # 一個(gè)變量
def foo: # 一個(gè)函數(shù)
print "I'm foo"
class bar: # 一個(gè)類
def grok(self):
print "I'm bar.grok"
b = bar()
測(cè)試模塊
# ceshi.py 位于 a下面
import b.spam as bspam # 導(dǎo)入并運(yùn)行模塊 spam
print bspam.a # 訪問模塊 spam 的屬性
bspam.foo()
c = bspam.bar()
另外一種導(dǎo)入方式
from ... import ...
比如上面的導(dǎo)入可以改寫為
# ceshi.py 位于 a下面
from b import spam # 導(dǎo)入并運(yùn)行模塊 spam
print spam.a # 訪問模塊 spam 的屬性
spam.foo()
c = spam.bar()
這種方式也可以導(dǎo)入模塊中某個(gè)具體對(duì)象
# ceshi.py 位于 a下面
from b.spam import a # 導(dǎo)入并運(yùn)行模塊 spam
print a # 訪問模塊 spam 的屬性
tips: 包和模塊的導(dǎo)入時(shí)不會(huì)重復(fù)的吝岭,要避免循環(huán)導(dǎo)入
今天就到這里吧三痰,簡(jiǎn)單簡(jiǎn)單的非常口語化窜管,寫作能力確實(shí)有限散劫,慢慢進(jìn)步吧。