Python 入門筆記20 物件導向高階

2021-10-22 04:46:25 字數 2726 閱讀 7697

object 類是所有類的父類,因此所有的類都有 object 類的屬性和方法。我們顯然有必要深入研究一下 object 類的結構。對於我們繼續深入學習 python 很有好處。

為了深入學習物件,我們先學習內建函式 dir(),他可以讓我們方便的看到指定物件所有的屬性。

檢視物件所有屬性以及和 object 進行比對:

class

person

:def

__init__

(self, name, age)

: self.name = name

self.age = age

defsay_age

(self)

:print

(self.name,

"的年齡是:"

, self.age)

obj =

object()

print

(dir

(obj)

)s2 = person(

"高淇",18

)print

(dir

(s2)

)

執行結果:

[『class』, 『delattr』, 『dir』, 『doc』, 『eq』, 『format』, 『ge』, 『getattribute』, 『gt』, 『hash』, 『init』, 『init_subclass』, 『le』, 『lt』, 『ne』, 『new』, 『reduce』, 『reduce_ex』, 『repr』, 『setattr』, 『sizeof』, 『str』, 『subclasshook』]

[『class』, 『delattr』, 『dict』, 『dir』, 『doc』, 『eq』, 『format』, 『ge』, 『getattribute』, 『gt』, 『hash』, 『init』, 『init_subclass』, 『le』, 『lt』, 『module』, 『ne』, 『new』, 『reduce』, 『reduce_ex』, 『repr』, 『setattr』, 『sizeof』, 『str』, 『subclasshook』, 『weakref』, 『age』, 『name』, 『say_age』]

從上面我們可以發現這樣幾個要點:

person 物件增加了六個屬性:

dictmoduleweakrefage name say_age

object 的所有屬性,person 類作為 object 的子類,顯然包含了所有的屬性。

我們列印 age、name、say_age,發現 say_age 雖然是方法,實際上也是屬性。只不過,這個屬性的型別是「method」而已。

age

name

say_age

object 有乙個__str__()方法,用於返回乙個對於「物件的描述」,對應於內建函式 str()經常用於 print()方法,幫助我們檢視物件的資訊。str()可以重寫。

**示例:

#測試重寫object的__str__()

class

person

:#預設繼承object類

def__init__

(self,name)

: self.name = name

def__str__

(self)

:return

"name:"

.format

(self.name)

p = person(

"russell"

)print

(p)

name:russell

python 物件導向 python是物件導向嗎

python是一種物件導向 解釋型計算機程式語言,由guido van rossum於1989年底發明,第乙個公開發行版發行於1991年,python 源 同樣遵循 gpl gnu general public license 協議。python語法簡潔而清晰,具有豐富和強大的類庫。但實際上面向過程...

Python 入門筆記16 物件導向初步(1)

物件的進化 物件導向 object oriented programming,oop 程式設計的思想主要是針對大型軟體設計而來的。物件導向程式設計使程式的擴充套件性更強 可讀性更好,使的程式設計可以像搭積木一樣簡單。物件導向程式設計將資料和運算元據相關的方法封裝到物件中,組織 和資料的方式更加接近人...

python入門3 物件導向

構造方法 coding utf 8 class person i 10 def eat self print hello world zhangsan person zhangsan.eat hello world class p def init self print 構造方法,建立物件 def ...