在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
定義兩個方法eat
和drink
按照需求 —— 不需要定義屬性
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()
提問:只需要在類的外部的**中直接通過tom
和lazy_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...