在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...