PYTHON中的例項,類,物件和屬性

2021-09-02 13:46:16 字數 3363 閱讀 3285

python中一切皆為物件,所謂物件:我自己就是乙個物件,我玩的電腦就是物件,坐著的椅子就是物件,家裡養的小狗也是乙個物件。。。。。。

我們通過描述屬性(特徵)和行為來描述乙個物件的。比如家裡的小狗,它的顏色,大小,年齡,體重等是它的屬性或特徵。它會汪汪叫,會搖尾巴等是它的行為。

我們在描述乙個真實物件(物體)時包括兩個方面:

它可以做什麼(行為)

它是什麼樣的(屬性或特徵)。

在python中,乙個物件的特徵也稱為屬性(attribute)。它所具有的行為也稱為方法(method)

結論:物件=屬性+方法

在python中,把具有相同屬性和方法的物件歸為乙個類(class)

比如人類,動物,植物等等,這些都是類的概念。

類是物件的模板或藍圖,類是物件的抽象化,物件是類的例項化。類不代表具體的事物,而物件表示具體的事物。

class people:

… def speak(self):

… print (「hello!」)

『』』定義乙個people類,定義乙個speak方法,但沒有定義屬性,

因為屬性不屬於類,而是屬於各個類的例項。也就是說屬於物件。

因此我們可以給每個例項設定不同的屬性

『』』

class people: #類

… def speak(self): #方法

… print (「hello!」)

jack = people() #建立jack例項

tom = people() #建立tom例項

import tab #匯入table鍵功能模組

jack. #輸入jack.,可以看到以下方法

jack.classjack.docjack.modulejack.speak(

jack.speak() #引用speak方法

hello!

jack.age=39 #新增age屬性

jack.height=120 #新增height屬性

jack.

jack.classjack.modulejack.height

jack.docjack.age jack.speak(

jack.height

120

jack.age

39

『』』#初始化物件

建立類時,可以定義乙個特定的方法,名為__init__(),只要建立這個類的乙個例項

就會執行這個方法。可以向__init__()方法傳遞引數,

這樣建立物件時就可以把屬性設定為你希望的值

init()這個方法會在建立物件時完成初始化,

class peo:

… definit(self,name,age,***):

… self.name = name

… self.age = age

… self.*** = ***

… def speak(self):

… print 「my name」 + self.name

例項化這個類的物件時:

zhangsan=peo(「zhangsan」,24,『man』)

print zhangsan.age

24

print zhangsan.name

zhangsan

print zhangsan.***

man

print zhangsan

<main.peo instance at 0x7fe5041ec248>

『』』要讓print能列印出來,就得使用__str__方法

str()這個方法告訴python在列印(print)乙個物件時,具體顯示什麼內容

『』』#! /usr/bin/python

class peo:

definit(self,name,age,***):

self.name = name

self.age = age

self.*** = ***

def speak(self):

print 「my name」 + self.name

defstr(self):

msg=『my name is: 』 +self.name+ 「,」+ "my age is: " + self.age +』,』+ 「my *** is:」 +self.***

# msg='my name is: ' +self.name+ ","+ "my age is: " + str(self.age) +','+ "my *** is:" +self.***

return msg

shanghai=peo(『shanghai』,『23』,『man』)

#shanghai=peo(『shanghai』,23,『man』)

『』』msg=『my name is: 』 +self.name+ 「,」+ "my age is: " + self.age +』,』+ 「my *** is:」 +self.***

此處23是年齡,但被轉成了字串,因為self.age定義的是字串

如果不將23轉義,則會報錯

如果希望在程式中就事先轉義,需要使用str(self.age)

『』』print shanghai

『』』之前多次用到self這個形參

類就好比是一張藍圖,使用乙個類可以建立多個物件例項,

speak()方法在被呼叫時,必須知道是哪個物件呼叫了它.

這裡self引數就會告訴方法是哪個物件來呼叫的.這稱為例項引用。

zhangsan。speak()就好比寫成了peo.speak(zhangsan)

『』

python類物件和例項物件

類物件支援兩種操作 屬性引用和例項化。屬性引用 使用 python 中所有屬性引用所使用的標準語法 obj.name。有效的屬性名稱是類物件被建立時存在於類命名空間中的所有名稱。因此,如果類定義是這樣的 a example class i 12345 def f self return hello ...

c 中的類 物件和例項

以前老有人搞不清類 物件和例項之間的關係,下面說說我的個人理解 1 物件說穿了就是乙個變數,是存在棧中,例如 star star new star 其中star是乙個物件,只不過是對引用型別的變數的另一種稱呼罷了 2 例項是存在堆中的,如 new star 這個例項,是沒有名字的,存放於堆中,那我們...

ObjC中的類和例項物件

oc中類的本質是乙個結構體 nsobject類中存在乙個class型別的isa指標。我們在xcode編寫乙個類繼承於nsobject,在terminal使用xcrun sdk iphoneos clang arch arm64 rewrite objc xx.m o xx.cpp將.m檔案轉成.cp...