has a 和 is a 的學習

2021-10-09 22:38:46 字數 1634 閱讀 9153

精進,**於重複和深入。

——傑通過學習,我對這兩則的理解是這樣的。 is a 指的物件是類和物件之間的一種繼承關係,比如,類human 和物件「小明」;has a 指的物件是類和類之間的一種包含關係。

我們學習理解has a和is a 的關係區別,實則是在弄明白**之間是實現繼承和介面繼承的關係,提高**的重用性。

下面我們來看乙個列子

class compter:

def __init__(self,brand,type,color):

self.brand=brand

self.type=type

self.color=color

def online(self):

print("正在使用電腦上網")

def __str__(self):

return self.brand + '-------'+self.type+'------'+self.color

class book:

def __init__(self,bname,number,author):

self.bname=bname

self.number=number

self.author=author

def __str__(self):

return self.bname+self.author+self.number

class sudent:

def __init__(self,name,compter,book):

self.name=name

self.compter=compter

self.book=

def __str__(self):

return self.name+'------->'+str(self.compter)+'-----'+str(self.book)

c=compter('mac','pro','深灰色')

print(c)

book('盜墓','10','南派')

print(book)

stu=sudent('fefbg',c,book)

print(stu)

結果

mac-------pro------深灰色

fefbg------->mac-------pro------深灰色-----

這裡我們可以發現,sudent和compter、book之間屬於同級關係的類,但是我們在sudent中,我們引用了compter和book。

在初次的執行過程中,我發現很多輸出錯誤。在後來的學習過程中,我才知道,這裡有乙個變數的概念。

在python中,有系統變數和自定義的變數。系統變數,主要是指int,list,set,string等;自定義變數,我們可以理解成是使用者自己寫的,比如我們這裡的類,就是我們寫的。

最後的解決辦法是,在輸出的地方,把輸入的變數(物件)強轉成字串。

總結:

在python中,不僅函式之間可以相互引用,而且類之間也可以相互引用。一開始,我理解不了,但是也漸漸認識到python的強大。不管是我們賦值,還是建立物件,python都會給我們分配位址,既然分配了位址,我們就可以大膽引用,引用的過程中,注意型別的轉化。

is A和has A的區別

is a 與 has a 的關係。is a 代表類之間或類與介面的繼承關係,比如貓是動物,狗也是動物,都繼承了動物的共同特性,再用oo語言實現時,應將貓和狗定義成兩種類,均繼承動物類。has a 代表的是物件和他成員的從屬關係,同一種類的物件,通過它們的屬性的不同值來區別。比如張三和李四都是人,但他...

is A和has A的區別

is a 與 has a 的關係。is a 代表類之間或類與介面的繼承關係,比如貓是動物,狗也是動物,都繼承了動物的共同特性,再用oo語言實現時,應將貓和狗定義成兩種類,均繼承動物類。has a 代表的是物件和他成員的從屬關係,同一種類的物件,通過它們的屬性的不同值來區別。比如張三和李四都是人,但他...

Is a 和Has a之間關係

is a 和has a之間關係 可以這樣理解 汽車是一種交通工具 汽車 is a 交通工具 汽車有乙個發動機 汽車 has a 發動機 is a 一般是繼承關係 has a 一般是組合關係 或者這樣理解 has a 關係即組合關係,通過定義類的屬性的方式實現的 is a 關係即繼承關係,通過類繼承實...