Python類的定義 繼承及類物件使用方法簡明教程

2021-10-23 03:22:48 字數 1899 閱讀 4476

這篇文章主要介紹了python類的定義、繼承及類物件使用方法簡明教程,本文用淺顯易懂的語言講解了類的定義、繼承及類物件的使用,非常實用易懂,需要的朋友可以參考下

python程式設計中類的概念可以比作是某種型別集合的描述,如「人類」可以被看作乙個類,然後用人類這個類定義出每個具體的人——你、我、他等作為其物件。類還擁有屬性和功能,屬性即類本身的一些特性,如人類有名字、身高和體重等屬性,而具體值則會根據每個人的不同;功能則是類所能實現的行為,如人類擁有吃飯、走路和睡覺等功能。具體的形式如下:

# 例:類的概念

class 人類:

名字 = '未命名' # 成員變數

def 說話(內容): # 成員函式

print 內容 # 成員變數賦初始值

某人 = 人類() # 定義乙個人類物件某人

某人.名字 = "路人甲"

python中定義和使用類的形式為:class 類名[(父類名)]:[成員函式及成員變數],類名為這個類的名稱,而父類名為可選,但定義父類名後,子類則擁有父類的相應屬性和方法。在用類定義成物件時,會先呼叫__init__建構函式,以初始化物件的各屬性,類的各屬性(成員變數)均可以在建構函式中定義,定義時只要加上物件指標就好了。而在物件銷毀時,則會呼叫__del__析構函式,定義類的成員函式時,必須預設乙個變數(類似於c++中的this指標)代表類定義的物件本身,這個變數的名稱可自行定義,下面例子將使用self變數表示類物件變數。

# 例:類定義及使用

class canimal:

name = 'unname' # 成員變數

def __init__(self,voice='hello'): # 過載建構函式

self.voice = voice # 建立成員變數並賦初始值

def __del__(self): # 過載析構函式

pass # 空操作

def say(self):

print self.voice

t = canimal() # 定義動物物件t

t.say() # t說話

>> hello # 輸出

dog = canimal('wow') # 定義動物物件dog

dog.say() # dog說話

>> wow # 輸出

python程式設計中類可以承繼父類屬性,形式為class 類名(父類),子類可以繼承父類的所有方法和屬性,也可以過載父類的成員函式及屬性,須注意的是子類成員函式若過載父類(即名字相同),則會使用子類成員函式

# 例:類的繼承

class canimal:

def __init__(self,voice='hello'): # voice初始化預設為hello

self.voice = voice

def say(self):

print self.voice

def run(self):

pass # 空操作語句(不做任何操作)

class cdog(canimal): # 繼承類canimal

def setvoice(self,voice): # 子類增加函式setvoice

self.voice = voice

def run(self,voice): # 子類過載函式run

print 'running'

bobo = cdog()

bobo.setvoice('my name is bobo!') # 設定child.data為hello

bobo.say()

bobo.run()

>> my name is bobo!

>> running

Python類的定義 繼承及類物件使用方法簡明教程

python程式設計中類的概念可以比作是某種型別集合的描述,如 人類 可以被看作乙個類,然後用人類這個類定義出每個具體的人 你 我 他等作為其物件。類還擁有屬性和功能,屬性即類本身的一些特性,如人類有名字 身高和體重等屬性,而具體值則會根據每個人的不同 功能則是類所能實現的行為,如人類擁有吃飯 走路...

python 類 繼承 python 類的繼承

1 所用的類都可以被繼承 2 沒有繼承其他類的類必然有乙個父類 object 3子類可以擁有父類的 init 裡的類容 派生子類除了父類的一些屬性,還會有自己的屬性和方法,這些就叫派生 如何使用 實現 class animal def init self,name,attack,hp self.na...

python類的繼承及重寫父類方法

寫python有一年多了,平日使用python解決一些問題,調一些介面,用一些框架,雖然不影響都可以寫,但一直沒有好好的花時間去理解python概念性的東西。也許,這也是寫了這麼久一直不能有所進步的原因,從今天起,來重新好好的學習一下python的相關概念。class tree def init s...