1.模塊導入
將代碼按照不同的功能拆分放到不同的.py文件中荔燎,每個.py文件就是一個模塊耻姥。不同模塊中的變量名可以相同,他們不會受影響有咨。在創(chuàng)建許許多多模塊后琐簇,我們可能希望將某些功能相近的文件組織在同一文件夾下,這里就需要運用包的概念了座享。
包是帶有__init__.py文件的文件夾婉商。包必須有__init__.py文件,不然他就是個文件夾渣叛。包是用來區(qū)分不同類型的模塊丈秩,不同包中的模塊名可以相同,他們不會相互受影響淳衙。包下可以還有包(子包)蘑秽,如同子文件夾
com/ 頂層包
? ? __init__.py? ? ? ? ? ? ? 初始化 com包
? ? comtest.py? ? ? ? ? ? ? com 下comtest模塊
? ? woodman/? ? ? ? ? ? ? ? com下的子包
? ? ? ? ? ? __init__.py
? ? ? ? ? ? woodtest.py
? ? ? ? ? ? ...
? ? gif/? ? ? ? ? ? ? ? ? ? 圖片處理包
? ? ? ? ? ? __init__.py
? ? ? ? ? ? gifecho.py
? ? ? ? ? ? giftest.py? ? ? 注意添加代碼
? ? ? ? ? ? ...
? ? modle/? ? ? ? ? ? ? ? ? modle子包
? ? ? ? ? ? __init__.py
? ? ? ? ? ? model.py
import... as...
import 模塊路徑.文件名 as 別名,當文件在當前目錄下或PATH環(huán)境變量下滤祖,可以直接import 文件名筷狼,否則要從項目根目錄下開始指定路徑。如果要同時導入多個模塊匠童,只需要在模塊名之前用逗號進行分隔:import module1,module2,module3....別名埂材,直接引入文件名可以不用別名,如果帶模塊路徑引入最好加上別名汤求,使用時直接 【別名. 】使用
在用import語句導入模塊時最好按照以下的順序:
1俏险、python 標準庫模塊? ? ?2、python 第三方模塊? ? ? 3扬绪、自定義模塊
import math? ? ? ?# 引入math模塊竖独,系統(tǒng)自帶模塊都在PATH下
import com.gif.gifecho as gif? ? ? ? ?# 引入gifecho 模塊
from ... import ...
from 模塊路徑.文件名 import 變量名\函數(shù)\類名
from com.gif.giftest import *? ? ? ? ? ? ?# 引入giftest.py 下的全部
from com.gif.giftest import add? ? ? ? # 只引入add函數(shù)
from com.gif.giftest import giftest? ? # 只引入giftest類
深入模塊http://www.runoob.com/python3/python3-module.html(以后補充)
2.面向?qū)ο?/h1>
把程序看做不同的對象相互調(diào)用,是一種對具體事務的抽象模型挤牛。Python中一切都是對象莹痢。面向?qū)ο缶幊套罨咎卣魇穷惡蛯嵗n愂怯糜诙x抽象的對象模型墓赴,實例是根據(jù)類創(chuàng)建的對象竞膳。
類(Class): 用于定義抽象的對象模型,它是描述具有相同的屬性和方法的對象的集合诫硕。它定義了該集合中每個對象所共有的屬性和方法坦辟。對象是類的實例。
類屬性(類變量):類屬性在整個實例化的對象中是公用的章办。類屬性定義在類中且在函數(shù)體方法之外锉走。類屬性通常不作為實例變量使用滨彻。
方法:類中定義的函數(shù)。
實例屬性(實例變量):只做用于當前實例的變量屬性挪蹭。
方法重寫:如果從父類繼承的方法不能滿足子類的需求亭饵,可以對其進行改寫,這個過程叫方法的覆蓋(override)嚣潜,也稱為方法的重寫冬骚。
實例化:創(chuàng)建一個類的實例,類的具體對象懂算。
實例:根據(jù)類定義的抽象模型創(chuàng)建出來的具體對象只冻。
對象:通過類定義的數(shù)據(jù)結(jié)構(gòu)實例。對象包括兩個數(shù)據(jù)成員(類變量和實例變量)和方法计技,其實他就是實例喜德。
數(shù)據(jù)成員:類變量或者實例變量用于處理類及其實例對象的相關(guān)的數(shù)據(jù)。
繼承:即一個派生類(derived class)繼承基類(base class)的字段和方法垮媒。繼承也允許把一個派生類的對象作為一個基類對象對待舍悯。
class person(object):
? address = '中國'? ? # 類屬性,沒個實例的公共屬性
? def __init__(self, name, sex, age):?
? ? ? self.name = name? ? ? ?# 實例屬性
? ? ? self.sex = sex? ? ? ? ? ? ? # 實例屬性
? ? ? self.age = age? ? ? ? ? ? # 實例屬性
? def dance(self):? ? ? ? ? # 方法
? ? ? print(self.name, '跳了一場舞')
hong = person('小紅', '女', 18)? ? # 實例化小紅睡雇,將實例化的對象賦值給變量hong
ming = person('小明', '男', 26)
hua = person('小花', '女', 22)
類:根據(jù)共有特征定義一個類(抽象對象模型)<人>類的相同屬性有姓名萌衬、性別、年齡實例:根據(jù)<人>類可以創(chuàng)建不同的人它抱,如【小明】秕豫、【小紅】等具有自己相應特征的人,【小明】、【小紅】就是實例
類的私有屬性:兩個下劃線開頭观蓄,聲明該屬性為私有混移,不能在類地外部被使用或直接訪問。在類內(nèi)部的方法中使用時?self.__private_attrs侮穿。
類的方法:在類地內(nèi)部歌径,使用 def 關(guān)鍵字來定義一個方法,與一般函數(shù)定義不同亲茅,類方法必須包含參數(shù)?self回铛,且為第一個參數(shù),self?代表的是類的實例克锣。
類的私有方法:兩個下劃線開頭茵肃,聲明該方法為私有方法,只能在類的內(nèi)部調(diào)用 娶耍,不能在類地外部調(diào)用免姿。self.__private_methods饼酿。