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