本文目錄一覽:
- 1、Python中的面向對象(進階)
- 2、Python中面向對象是什麼意思?
- 3、Python之什麼叫面向對象
- 4、想學python從哪裡入手
- 5、python面向對象的三大特徵的用法和函數的用法一樣嗎
Python中的面向對象(進階)
一、實例方法,類方法,靜態方法
我們首先寫一個類,裏面包含這三種方法。
可以看到,我們用到了兩個裝飾器。
我們用類和實例分別調用下類方法
我們用類和實例分別調用下靜態方法
靜態方法其實就是把一個普通的函數寫在類里,與直接在外層寫一個函數是一樣的,本質上是一個函數。
為了方便理解,我們分別打印下這些方法的類型
通過type()查看對象是方法還是函數
此外,還可以通過inspect模塊判斷某個對象是否是某種類型,返回布爾值。
用法
小Tips:概念理解
直接def定義的,我們叫做函數
把函數放到類里,我們叫做方法
方法可以通過裝飾器staticmethod轉為(放在方法里的)函數
繼承
一個類繼承另一個類時,會自動獲得另一個類的所有屬性和方法,被繼承的類稱之為父類,新類稱為子類。子類擁有父類所有的屬性和方法,並且可以定義自己的屬性和方法
我們以上邊的Rectangle類為父類來試一下
1)完全繼承
可以看到,子類完全繼承父類後,可以直接調用父類的所有方法。
2)部分繼承
部分繼承:繼承父類後,修改父類的同名方法
我們試一下,Square繼承Rectangle後,修改__init__()方法
3)拓展父類的方法
在保留父類中某個方法的代碼同時,對方法進行拓展
可以在方法中加入”super().方法名”來實現
4)@property
Python中面向對象是什麼意思?
Python既支持面向過程的編程也支持面向對象的編程。在「面向過程」的語言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在「面向對象」的語言中,程序是由數據和功能組合而成的對象構建起來的。比如說C主要面向過程,而JAVA主要面向對象。
Python之什麼叫面向對象
面向對象是向現實世界模型的自然延伸,這是一種「萬物皆對象」的編程思想。在現實生活中的任何物體都可以歸為一類事物,而每一個個體都是一類事物的實例。面向對象的編程是以對象為中心,以消息為驅動,所以程序=對象+消息。
面向對象有三大特性,封裝、繼承和多態。
封裝就是將一類事物的屬性和行為抽象成一個類,使其屬性私有化,行為公開化,提高了數據的隱秘性的同時,使代碼模塊化。這樣做使得代碼的復用性更高。
相關推薦:《Python視頻教程》
繼承則是進一步將一類事物共有的屬性和行為抽象成一個父類,而每一個子類是一個特殊的父類–有父類的行為和屬性,也有自己特有的行為和屬性。這樣做擴展了已存在的代碼塊,進一步提高了代碼的復用性。
如果說封裝和繼承是為了使代碼重用,那麼多態則是為了實現接口重用。多態的一大作用就是為了解耦–為了解除父子類繼承的耦合度。如果說繼承中父子類的關係式IS-A的關係,那麼接口和實現類之之間的關係式HAS-A。簡單來說,多態就是允許父類引用(或接口)指向子類(或實現類)對象。很多的設計模式都是基於面向對象的多態性設計的。
總結一下,如果說封裝和繼承是面向對象的基礎,那麼多態則是面向對象最精髓的理論。掌握多態必先了解接口,只有充分理解接口才能更好的應用多態。
想學python從哪裡入手
初學者學習Python需循序漸進,可以從以下內容入手學習:
1.Python基礎知識
學習任何一門編程語言都需要學習相關語法知識,Python基礎知識的學習主要包括Python解釋器執行原理、字符編碼、注釋、變量、縮進、流程控制、文件操作、數據類型、數據類型內置方法、字符串格式化、運算符、輸入輸出、三元運算、collections、列表、字典、元組、集合、IO操作、文件增刪改查、函數等。
2.函數和常用模塊
函數和常用模塊的學習內容主要包括裝飾器原理和使用、高階函數、迭代器與生成器、函數式編程、函數遞歸、二分查找、模塊介紹、re正則模塊、os\sys模塊、subprocess模塊、shuti\shelve\itertools模塊、hashlib模塊、logging日誌模塊、time\datetime\traceback模塊、json\pickle\yam\configparser處理模塊、urllib\paramiko模塊等。
3.面向對象
Python面向對象知識的學習主要包括面向對象和類介紹、創建類、經典類與新式類、面向對象的三大特性、類的普通成員、字段方法屬性、類的高級成員、靜態字段、靜態方法、靜態屬性、類方法、MetaClass\AbstractClass、類成員修飾符等。
4.網絡編程基礎
Python網絡編程基礎學習內容包括Python模塊SocketServer使用和源碼剖析、GIL內部機制、線程鎖、事件、生產者消費模型、進程的使用、進程間數據共享等。
5.數據庫、緩存、隊列
Python數據庫、緩存、隊列學習內容為Python操作redis、Python操作memcache、rabbitMQ消息隊列、數據庫介紹、mysql數據庫安裝使用、mysql管理、mysql數據類型、常用mysql命令、創建數據庫、外鍵、增刪改查表、權限、事務、索引、Python操作mysql等。
6.Web開發基礎
Python之Web開發基礎學習內容為HTML基礎、CSS基礎、JavaScript基礎、局部變量和全局變量、集合、數組、字典、函數參數、原型、面向對象、作用域、dom編程、jquery介紹、jquery選擇器、jquery屬性和CSS操作、jquery文檔處理、jquery篩選、jquery事件託管、jquery事件、jquery
ajax、jquery擴展方法、bootstrap使用、EasyUI介紹和使用等。
7.Web框架學習
Python之Web框架學習內容為Web框架本質、socket服務器、基於反射的路由系統、WSGI介紹及原理實現、開發自己的Web框架、MVC和MTV、路由系統、模板、django基礎學習與使用、普通路由和動態路由、模板引擎、ORM介紹、Django
ORM增刪改查學習、自定義tag、django進階學習與使用、模型綁定、Form表單驗證、Django
ORM進階學習、ModelForm、自定義Validator等。
python面向對象的三大特徵的用法和函數的用法一樣嗎
python面向對象的三大特徵的用法和函數的用法一樣。面向對象的三大特性是指封裝、繼承和多態。面向對象編程是一種編程方式,此編程方式的落地需要使用類和對象來實現,所以,面向對象編程其實就是對類和對象的使用。類就是一個模板,模板里可以包含多個函數,函數里實現一些功能對象則是根據模板創建的實例,通過實例對象可以執行類中的函數。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/306096.html