python 物件導向 03 物件導向基礎語法

2022-03-01 10:07:31 字數 4558 閱讀 6708

python中可以使用以下兩個方法驗證:

識別符號/資料後輸入乙個.,然後按下tab鍵,ipython會提示該物件能夠呼叫的方法列表

使用內建函式dir傳入識別符號/資料,可以檢視物件內的所有屬性及方法

提示__方法名__格式的方法是python提供的內建方法 / 屬性,稍後會給大家介紹一些常用的 內建方法 / 屬性

序號方法名

型別作用

01__new__

方法建立物件時,會被自動呼叫

02__init__

方法物件被初始化時,會被自動呼叫

03__del__

方法物件被從記憶體中銷毀前,會被自動呼叫

04__str__

方法返回物件的描述資訊print函式輸出使用

提示利用好dir()函式,在學習時很多內容就不需要死記硬背了

物件導向更大封裝,在乙個類中 封裝 多個方法,這樣通過這個類建立出來的物件,就可以直接呼叫這些方法了

class 類名:

def 方法1(self, 引數列表):

pass

def 方法2(self, 引數列表):

pass

注意:類名的 命名規則 要符合大駝峰命名法

物件變數 = 類名()
需求分析定義乙個貓類cat定義兩個方法eatdrink

按照需求 —— 不需要定義屬性

class cat:

"""這是乙個貓類"""

def eat(self):

print("小貓愛吃魚")

def drink(self):

print("小貓在喝水")

tom = cat()

tom.drink()

tom.eat()

引用概念的強調
在物件導向開發中,引用的概念是同樣適用的!

案例高階 —— 使用 cat 類再建立乙個物件

lazy_cat = cat()

lazy_cat.eat()

lazy_cat.drink()

提問:tomlazy_cat是同乙個物件嗎?

只需要在類的外部的**中直接通過.設定乙個屬性即可

tom.name = "tom"

...lazy_cat.name = "大懶貓"

哪乙個物件呼叫的方法,方法內的self就是哪乙個物件的引用

改造**如下:

class cat:

def eat(self):

print("%s 愛吃魚" % self.name)

tom = cat()

tom.name = "tom"

tom.eat()

lazy_cat = cat()

lazy_cat.name = "大懶貓"

屬性錯誤:'cat' 物件沒有 'name' 屬性

提示物件應該包含有哪些屬性,應該封裝在類的內部

__init__方法是專門用來定義乙個類具有哪些屬性的方法

cat中增加__init__方法,驗證該方法在建立物件時會被自動呼叫

class cat:

"""這是乙個貓類"""

def __init__(self):

print("初始化方法")

class cat:

def __init__(self):

print("這是乙個初始化方法")

# 定義用 cat 類建立的貓物件都有乙個 name 的屬性

self.name = "tom"

def eat(self):

print("%s 愛吃魚" % self.name)

# 使用類名()建立物件的時候,會自動呼叫初始化方法 __init__

tom = cat()

tom.eat()

class cat:

def __init__(self, name):

print("初始化方法 %s" % name)

self.name = name

...tom = cat("tom")

...lazy_cat = cat("大懶貓")

...

序號

方法名型別

作用01

__del__

方法物件被從記憶體中銷毀前,會被自動呼叫

02__str__

方法返回物件的描述資訊print函式輸出使用

應用場景

生命週期

class cat:

def __init__(self, new_name):

self.name = new_name

print("%s 來了" % self.name)

def __del__(self):

print("%s 去了" % self.name)

# tom 是乙個全域性變數

tom = cat("tom")

print(tom.name)

# del 關鍵字可以刪除乙個物件

del tom

print("-" * 50)

注意:__str__方法必須返回乙個字串

class cat:

def __init__(self, new_name):

self.name = new_name

print("%s 來了" % self.name)

def __del__(self):

print("%s 去了" % self.name)

def __str__(self):

return "我是小貓:%s" % self.name

tom = cat("tom")

print(tom)

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

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

物件導向 03

類屬性和例項屬性的概念 類屬性是給類物件 類是乙個特殊的物件 中定義的屬性,通常用來記錄與這個類相關的特徵,類屬性不會用於記錄具體物件的特徵。類屬性的定義是在初始化方法之外的 例項物件的屬性叫做例項屬性,在初始化方法內部定義 類屬性和例項屬性的訪問 類屬性的訪問是類名.類屬性 例項屬性的訪問是例項物...

物件導向03

將資料 屬性 和行為 方法 包裝到類物件中,在方法內部對屬性進行操作,在類物件的外部呼叫方法 在類物件的內部通過訪問控制把某些屬性和方法隱藏起來,不允許在類物件外部直接訪問,而是在類物件內部對外提供公開的介面方法以訪問隱藏的資訊。介面class student object def init sel...