Python入門教程(二十二)Python的類和對象
Python 類/對象
Python 是一種面向?qū)ο蟮木幊陶Z言。
Python 中的幾乎所有東西都是對象,擁有屬性和方法。
類(Class)類似對象構(gòu)造函數(shù),或者是用于創(chuàng)建對象的“藍(lán)圖”。
創(chuàng)建類
如需創(chuàng)建類,請使用 class 關(guān)鍵字:
實(shí)例
使用名為 x 的屬性,創(chuàng)建一個(gè)名為 MyClass 的類:
class MyClass: x = 5
運(yùn)行實(shí)例
<class '__main__.MyClass'>
創(chuàng)建對象
現(xiàn)在我們可以使用名為 myClass 的類來創(chuàng)建對象:
實(shí)例
創(chuàng)建一個(gè)名為 p1 的對象,并打印 x 的值:
p1 = MyClass() print(p1.x)
運(yùn)行實(shí)例
7
init() 函數(shù)
上面的例子是最簡單形式的類和對象,在實(shí)際應(yīng)用程序中并不真正有用。
要理解類的含義,我們必須先了解內(nèi)置的 init() 函數(shù)。
所有類都有一個(gè)名為 init() 的函數(shù),它始終在啟動類時(shí)執(zhí)行。
使用 init() 函數(shù)將值賦給對象屬性,或者在創(chuàng)建對象時(shí)需要執(zhí)行的其他操作:
實(shí)例
創(chuàng)建名為 Person 的類,使用 init() 函數(shù)為 name 和 age 賦值:
class Person: def __init__(self, name, age): self.name = name self.age = age p1 = Person("Bill", 63) print(p1.name) print(p1.age)
運(yùn)行實(shí)例
Bill 63
注釋:每次使用類創(chuàng)建新對象時(shí),都會自動調(diào)用 init() 函數(shù)。
對象方法
對象也可以包含方法。對象中的方法是屬于該對象的函數(shù)。
讓我們在 Person 類中創(chuàng)建方法:
實(shí)例
插入一個(gè)打印問候語的函數(shù),并在 p1 對象上執(zhí)行它:
class Person: def __init__(self, name, age): self.name = name self.age = age def myfunc(self): print("Hello my name is " + self.name) p1 = Person("Bill", 63) p1.myfunc()
運(yùn)行實(shí)例
Hello my name is Bill
提示:self 參數(shù)是對類的當(dāng)前實(shí)例的引用,用于訪問屬于該類的變量。
self 參數(shù)
self 參數(shù)是對類的當(dāng)前實(shí)例的引用,用于訪問屬于該類的變量。
它不必被命名為 self,您可以隨意調(diào)用它,但它必須是類中任意函數(shù)的首個(gè)參數(shù):
實(shí)例
使用單詞 mysillyobject 和 abc 代替 self:
class Person: def __init__(mysillyobject, name, age): mysillyobject.name = name mysillyobject.age = age def myfunc(abc): print("Hello my name is " + abc.name) p1 = Person("Bill", 63) p1.myfunc()
運(yùn)行實(shí)例
Hello my name is Bill
修改對象屬性
您可以這樣修改對象的屬性:
實(shí)例
把 p1 的年齡設(shè)置為 40:
p1.age = 40
運(yùn)行實(shí)例
64
刪除對象屬性
您可以使用 del 關(guān)鍵字刪除對象的屬性:
實(shí)例
刪除 p1 對象的 age 屬性:
del p1.age
運(yùn)行實(shí)例
Traceback (most recent call last): File "demo_class7.py", line 13, in <module> print(p1.age) AttributeError: 'Person' object has no attribute 'age'
刪除對象
使用 del 關(guān)鍵字刪除對象:
實(shí)例
刪除 p1 對象:
del p1
運(yùn)行實(shí)例
Traceback (most recent call last): File "demo_class8.py", line 13, in <module> print(p1) NameError: 'p1' is not defined
pass 語句
類定義不能為空,但是如果您處于某種原因?qū)懥藷o內(nèi)容的類定義語句,請使用 pass 語句來避免錯誤。
實(shí)例
class Person: pass
到此這篇關(guān)于Python入門教程(二十二)Python的類和對象的文章就介紹到這了,更多相關(guān)Python的類和對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python QTimer實(shí)現(xiàn)多線程及QSS應(yīng)用過程解析
這篇文章主要介紹了Python QTimer實(shí)現(xiàn)多線程及QSS應(yīng)用過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Python梯度提升庫XGBoost解決機(jī)器學(xué)習(xí)問題使用探究
XGBoost是一個(gè)流行的梯度提升庫,特別適用于解決各種機(jī)器學(xué)習(xí)問題,它在性能和速度上表現(xiàn)出色,常被用于分類、回歸、排序、推薦系統(tǒng)等應(yīng)用,本文將介紹XGBoost的基本原理、核心功能以及一些詳細(xì)的示例代碼2024-01-01一文教你掌握Python中Lambda表達(dá)式的5種實(shí)用技巧
在Python編程的宇宙里,有一個(gè)強(qiáng)大而靈活的工具經(jīng)常被高效的程序員所利用——那就是Lambda表達(dá)式,下面就讓我們深入了解Lambda表達(dá)式的妙用吧2024-01-01python數(shù)據(jù)庫操作mysql:pymysql、sqlalchemy常見用法詳解
這篇文章主要介紹了python數(shù)據(jù)庫操作mysql:pymysql、sqlalchemy常見用法,結(jié)合實(shí)例形式分析了Python mysql操作庫pymysql、sqlalchemy基本使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03python中plot實(shí)現(xiàn)即時(shí)數(shù)據(jù)動態(tài)顯示方法
這篇文章主要為大家詳細(xì)介紹了python中plot實(shí)現(xiàn)即時(shí)數(shù)據(jù)動態(tài)顯示方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06