python的类包括_Python的类,复杂吗
是菜鳥學python的第38篇原創(chuàng)文章
閱讀本文大概需要6分鐘
高級語言都有面對對象,Python也不例外,比起c++,java這些傳統(tǒng)的語言,Python中的面對對象去掉了很多復雜的東西,理解和使用起來更簡單一些
一般來說面對對象包含:數(shù)據(jù)封裝、繼承和多態(tài)這三大特點
Python的類我準備花4-5篇來仔細講講,今天我們先來了解一些最最最簡單基本的概念
要點:
1.類的定義和類的實例
2.類的初始化
3.類的刪除
4.類的屬性
5.類的方法
類的入門圖
1.類和類的實例類其實是一種數(shù)據(jù)結構,我們可以用它來定義對象,一個類會包含屬性和行為特性.類是現(xiàn)實世界抽象的實體以編程形式出現(xiàn).
python中類的聲明用class關鍵字來命名。
python類分為兩種:經(jīng)典類(舊類),新式類.新式類主要是從Python2.2以后開始引入的,目前主要以用新式類為主(Python 3.x中默認都是新式類)
也許同學會問為啥有新式類的出現(xiàn)(主要的差別在于類內(nèi)置屬性,多重繼承的搜索順序和父類初始化)
2.類的初始化類的初始化函數(shù)是用__init__來完成的,也許有的同學有c++,java基礎的,覺得它和構造函數(shù)很像
確實很像,注意注意注意__init__()不是類的構造函數(shù),只是用來做初始化的
今天這篇只是揭露類的表層,等后面慢慢熟悉了之后,深入揭露類的本質(zhì)的時候,我會告訴大家為什么它不是構造函數(shù),只是初始化函數(shù)
1).當Dog類聲明一個dog_obj對象實例的時候,Python會自動去檢查時候?qū)崿F(xiàn)了__init__()方法,做一些實例對象的初始化工作,
2).有細心的小伙伴會問為啥這個__init__()函數(shù)長的這么奇怪,要有雙下劃線開頭,哇你會搶答了,這個在Python中有特殊的含義.用來一些命名約定來進行訪問控制。
3).又有同學會問self是啥,這個參數(shù)是Python特有的,當__init__()被調(diào)用的時候,實例對象作為第一個參數(shù)被傳遞了進去,相同于java里面的this.也就是說self其實就是類的對象地址,啊哈你不信,好俺證明給你看
3.類的刪除類既然有初始化,就一定有刪除,有進就有出,python里面用一個__del__()來負責清理類的對象,
當這個對象沒有人用了就會被清理掉.有同學會問~~我怎么知道什么時候?qū)ο鬀]有人用了,聰明Python用引用計數(shù)的方法來追蹤
引用一次加1,當引用計數(shù)為0的時候,python內(nèi)置了一個垃圾對象回收機制,一旦計數(shù)為0就清理對象就會去調(diào)用類里面的__del__()方法.是不是很智能,其實java也內(nèi)置了這樣的功能。
4.類的屬性類里面定義
類的初始化函數(shù)里面定義
1)先來說說類里面定義,有一個Student類,里面有name和age屬性
class Student(object):
name='wang'
age=10
name,age都是Student類的屬性,所以Student的對象實例都共享name,age
換句話說你的s1,s2兩個對象里面的name,age都是一樣的,不信你看:
再來看看對象的屬性:
5.類中的方法實例方法
類的方法
類的靜態(tài)函數(shù)
類中的方法以及這3個方法之間的相互的調(diào)用關系比較復雜,它的設計思想跟java里面很像,限于篇幅,我們在下一篇文章單獨對類的方法詳細講解.
最后說一下,原創(chuàng)真的不易,希望大家能夠給點支持,
也歡迎更多喜歡Python的同學關注 微信公眾號:菜鳥學python,一起來學python吧
總結
以上是生活随笔為你收集整理的python的类包括_Python的类,复杂吗的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初识Mysql(一)
- 下一篇: 【Python3网络爬虫开发实战】4-解