Python物件導向類繼承和組合例項分析

2022-09-26 18:24:12 字數 3773 閱讀 4191

在python3中所有類預設繼承object,凡是繼承了object的類都成為新式類,以及該子類的子類python3中所有的類都是新式類,沒有整合object類的子類成為經典類(在python2中沒有整合object的類以及它的子類都是經典類

繼承式用來建立新的類的一種方式,好處是減少重複**

class people:

def __init__(self,name,age):

self.name=name

self.age=age

def walking(self):

print('%s is walking ' %self.name)

def talking(self):

print('%s is talking '%self.name)

class teacher(people):

pass

class student(people):

pass

t1=teacher('egon',18)

print(t1.name,t1.age)

t1.walking()

t1.talking()

s1=student('xiaobai',22)

print(s1.name,s1.age)

s1.talking()

s1.walking()

執行結果

egon 18

egon is walking

egon is talking

xiaobai 22

xiaobai is talking

xi程式設計客棧aobai is walking

class people:

def __init__(self,name,age,***):

self.name=name

self.age=age

self.***=***

def walking(self):

print('%s is walking ' %self.name)

def talking(self):

print('%s is talking '%self.name)

class teacher(people):

def __init__(self,name,age,***,level,salary):

people.__init__(name,age,***)

self.level=程式設計客棧level

self.salary=salary

def teaching(self):

people.talking(self)

print('%s is teaching'%self.name)

class student(people):

def __init__(self,name,age,***,group):

people.__init__(name,age,***)

self.group=group

def studying(self):

people.talking(self)

print('%s is studying'%self.name)

組合class date:

def __init__(self,year,mon,day):

self.year=year

self.mon=mon

self.day=day

def tell_birth(self):

print('出生於年 月 日'%(self.year,self.mon,self.day))

class teacher:

def __init__(self,name,age,***,year,month,day):

self.name=name

self.age=age

self.***=***

self.birth=date(year,month,day)

def teaching(self):

print('%s is teaching'%self.name)

class student:

def __init__(self,name,age,***,year,mon,day):

self.name=name

self.age=age

self.***=***

self.birth=date(year,mon,day)

def studying(self):

print('%s is studying'%self.name)

xiaobai=student('xiaobai',22,'male','1995','3','16')

xiaobai.birth.tell_birth()

執行結果

出生於<1995>年 <3>月 <16>日

繼承和組合

class people:

def __init__(self,name,age,***,year,mon,day):

self.name=name

self.age=age

self.***=***

self.birth=date(year,mon,day)

def walking(self):

print('%s is walking ' %self.name)

def talking(self):

print('%s is talking '%self.name)

class date:

def __init_程式設計客棧_(self,year,mon,day):

self.year=year

self.mon=mon

self.day=day

def tell_birth(self):

print('出生於年 月 日'%(self.year,self.mon,self.day))

class teacher(people):

def __init__(self,name,age,***,level,salary,year,mon,day):

people.__init__(self,name,age,***,year,mon,day)

self.level=level

self.salary=salary

def teaching(self):

people.talking(self)

print('%s is teaching'%self.name)

class student(people):

def __init__(self,name,age,s程式設計客棧ex,year,mon,day,group):

people.__init__(self,name,age,***,year,mon,day)

self.group=group

def studying(self):

people.talking(self)

print('%s is studying'%self.name)

父類要限制

1、子類必須有父類的方法

2、子類實現的方法必須跟父類的方法的名字一樣

import abc

class file(metaclass=abc.abcmeta):

@abc.abstractclassmethod

def read(self):

pass

@abc程式設計客棧.abstractclassmethod

def write(self):

pass

python學習 物件導向 類 物件 繼承

約定成俗的類的命名方式 1 首字母大寫 2 為了與其他進行區分盡量避免使用 建議採用studenthomework小駝峰的格式 類的常規格式 class student 定義變數 資料成員 student sum 80 類變數 建構函式 def init self,name,age 其中的self....

Python物件導向 類的繼承

基本概念 物件導向三要素之一,繼承inheritance 上例可以看出,通過繼承 貓類不同寫 直接繼承了父類的屬性和方法。繼承 定義格式如下 class 子類名 基類1 基類2,語句塊如果類定義時,沒有基類列表,等同於繼承自object。在python3中object類是所有物件的根基類 class...

python物件導向 類的繼承

子類 son類 父類 father類 以下案例均表示son類繼承父類的一些屬性和初始化引數構造等。5個模組 1 直接呼叫父類屬性方法 2 重寫父類屬性方法 3 強制呼叫父類私有屬性方法 4 呼叫父類的 init 方法 5 繼承父類初始化過程中的引數 class father def init sel...