學習python第八天

2022-08-14 19:09:14 字數 4663 閱讀 7399

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

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

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

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

序號方法名

型別作用

01__new__

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

02__init__

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

03__del__

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

04__str__

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

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

class

person:

#初始化方法

def__init__

(self, name, weight):

self.name =name

self.weight =weight

#預設輸出

def__str__

(self):

return

"我的名字叫 %s 體重 %.2f 公斤

" %(self.name, self.weight)

defrun(self):

print("

%s 愛跑步,跑步鍛鍊身體

" %self.name)

self.weight -= 0.5

defeat(self):

print("

%s 是吃貨,吃完這頓再**

" %self.name)

self.weight += 1xiaoming = person("

小明", 75)

xiaoming.run()

xiaoming.eat()

xiaoming.eat()

print(xiaoming)

引用概念的強調

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

#

xiaoming.address = "

北京"

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

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 關鍵字可以刪除乙個物件

deltom

print("

-" * 50)

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

classcat:

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)

class

women:

def__init__

(self, name):

self.name =name

#不要問女生的年齡

self.__age = 18

def__secret

(self):

print("

我的年齡是 %d

" % self.__age

)xiaofang = women("小芳"

)#私有屬性,外部不能直接訪問

#print(xiaofang.__age)

#私有方法,外部不能直接呼叫

#xiaofang.__secret()

python中,並沒有真正意義私有

#

私有屬性,外部不能直接訪問到

print

(xiaofang._women__age)

#私有方法,外部不能直接呼叫

xiaofang._women__secret()

物件導向三大特性

封裝根據職責屬性方法封裝到乙個抽象的

繼承實現**的重用,相同的**不需要重複的編寫

多型不同的物件呼叫相同的方法,產生不同的執行結果,增加**的靈活度

class

類名(父類名):

pass

重寫父類方法有兩種情況:

覆蓋父類的方法(相當於在子類中定義了乙個和父類同名的方法並且實現

對父類方法進行擴充套件(子類方法中,在需要的位置使用super().父類方法來呼叫父類方法的執行)

解決方法:python 中的 mro —— 方法搜尋順序(知道)objectpython為所有物件提供的基類,提供有一些內建的屬性和方法,可以使用dir函式檢視。

python 3.x中定義類時,如果沒有指定父類,會預設使用object作為該類的基類——python 3.x中定義的類都是新式類

python 2.x中定義類時,如果沒有指定父類,則不會以object作為基類

新式類經典類在多繼承時 ——會影響到方法的搜尋順序(如果沒有父類,建議統一繼承自object

Python學習第八天

字典與集合 字典是一種列表,只不過其中儲存的元素成了鍵值對,字典的每個鍵值 key value 對用冒號 分割,每個鍵值對之間用逗號 分割,整個字典包括在花括號 中 格式如下所示 d 值可以取任何資料型別,但鍵必須是不可變的,如字串,數字或元組。乙個簡單的字典例項 dict1 dict2 dict ...

學習python 第八天

物件導向 多型 多種形態 繼承 重寫 類與類之間的關係 繼承 關聯 組合,聚合 依賴 關聯 乙個類的物件作為另乙個類的屬性 依賴 乙個類的物件作為另乙個類的方法的引數 耦合程度 繼承 關聯 依賴 封裝 類屬性 物件屬性 class a name 張三 類屬性 def init self,age se...

學習Python的第八天

今天學習的內容是字典與集合 字典 字典是另一種可變容器模型,且可儲存任意型別物件。字典的每個鍵值 key value 對用冒號 分割,每個對之間用逗號 分割,整個字典包括在花括號 中 鍵必須是唯一的,但值則不必。值可以取任何資料型別,但鍵必須是不可變的,如字串,數字或元組。訪問字典裡的值 把相應的鍵...