多繼承 模組和包

2021-10-25 06:39:13 字數 2576 閱讀 2008

. 多繼承

1.  為什麼使用多繼承? 為了隔離多個維度的變化

2. 同名方法解析順序? 繼承列表從左向右(廣度優先)

class a:

def func01(self):

print("a -- func01")

class b(a):

def func01(self):

print("b -- func01")

# 建立d物件,執行c

# 建立b物件,執行a

super().func01()

class c(a):

def func01(self):

print("c -- func01")

super().func01()

class d(b, c):

def func01(self):

print("d -- func01")

super().func01()

d = d() # d --> b --> c --> a

d.func01()

# 通過型別的mro方法,檢視同名方法解析順序

print(d.mro())

. 模組:

匯入方式1:語法:import 模組名

使用:模組名. 成員

import module01

module01.func01()

匯入方式2:語法:from 模組 import 內容

使用:直接使用內容

本質:將該模組成員匯入到當前作用域

def func01():

print("demo02 - func01")

from module01 import func01

func01()

func01()

from module01 import *

func02()

. 包:

根目錄​ 包(資料夾+init.py)

​ 模組(檔案)

​ 類​ 函式

​ 語句

# 路徑:從根目錄開始寫(不寫根目錄)

# 方式一:我過去

import package01.package02.module02 as m2

m2.func01()

# 方式二:你過來

from package01.package02.module02 import func01

func01()

只匯入包,不匯入包的模組,必須配置__init__.py

# 方式1

import package01.package02 as p2

p2.module02.func01()

# 方式2

# from package01 import package02

## package02.module02.func01()

from package01.package02 import *

module02.func01()

if __name__ == "__main__":

print("老子(demo04)是主模組!!!!")

. 總結:

為什麼要有模組和包?將**有邏輯的組織在一起,使得結構更加清晰

(主流)匯入方式

方式1:我過去

​ import 模組名

​ 模組名. 成員

​ import 路徑. 模組名 as 別名

​ 別名. 成員

方式2:你過來

from 模組 import 成員

直接使用成員

from 路徑.模組 import 成員

直接使用成員

from *** import *

直接使用所有成員

路徑:從專案根目錄開始(不包含根目錄)

3. (非主流)匯入方式:匯入包,不匯入模組

必須配置包的__init__.py模組

import 包

from 包 import 包

4.搜尋模組順序:按照系統路徑搜尋,如果有滿足條件,立即停止.

import sys

print( sys.path)

系統路徑是乙個列表

第乙個元素是根目錄(主模組(第一次執行的模組)所在的資料夾)

匯入模組是否成功的唯一標準:

匯入路徑 + 系統路徑 = 真實路徑

模組變數

# 1. 變數__doc__儲存的是:模組的文件注釋

# print(__doc__)

# print(random.__doc__)

# 2. 變數__name__儲存的是:當前模組名稱

import demo04

# 如果當前是主模組

if __name__ == "__main__":

print("老子(demo05)是主模組!!!!")

python class 繼承和多繼承

繼承和多繼承 子類在繼承的時候,在定義類的時候,填寫的是父類的名字 父類的屬性和方法,子類都可以繼承並使用 父類 子類 基類 派生類 class chickensoup object 繼承的子類引數是object,多繼承的子類引數是父類的名字 definit self self.name 爺爺傳承下...

單繼承和多繼承

物件導向的三大特性 封裝,繼承,多型.什麼是繼承?專業角度 b 繼承 a類,b就叫做a的子類,派生類,a叫做b的父類,基類,超類.b類以及b類的物件使用a類的所有的屬性以及方法.字面意思 繼承就是繼承父母所有的資產.單繼承,多繼承.繼承的優點.節省 增強的耦合性.規範化.單繼承.子類以及物件可以呼叫...

python 模組和包 python模組和包

一.模組 python 模組 module 是乙個 python 檔案,以 py 結尾,包含了 python 物件定義和python語句。模組能定義函式,類和變數,模組裡也能包含可執行的 二.匯入模組 1.語法 import模組名from 模組名 import功能名from 模組名 import i...