詳解python類別實例分析
這篇文章主要介紹了python 類別詳解及實例的相關資料,需要的朋友可以參考下
python 類別詳解
#類別
1.類別是一種資料結構,可用來建立實例。 (一般情況下,類別封裝了資料和可用於該資料的方法)
2.Python類別是可呼叫的物件,即類別物件
##3.類別通常在模組的頂層進行定義,以便類別實例能夠在類別所定義的原始程式碼檔案中的任何地方被創建。 4.實例初始化- instance =
ClassName(args....)
- 類別在實例化時可以使用init和del兩個特殊的方法。
class ClassName(base): 'class documentation string' #类文档字符串 class suite #类体
- base:超類別是一個或多個用於
繼承的父類別集合
- 類別體可以包含:宣告語句、類別成員定義、資料
屬性、方法
- #如果類別不存在繼承關係,就不提供括號裡的base
class FirstClass(): spam = 30 #类数据属性 def display(self): #类方法 print self.spam x = FirstClass() #创建类实例 x.display() #方法调用 >>> 30 dir(FirstClass) >>> ['doc', 'module', 'display', 'spam']
- class語句類似def,是可執行程式碼;直到執行class語句後,類別才會建立
- class語句內,任何賦值語句都會建立類別屬性
- 每個實例物件都會繼承類別的屬性並取得自己的名稱空間
Python類別方法及呼叫
實例(物件)所包含的屬性
- 可呼叫的屬性:方法
- 資料屬性
- 透過實例呼叫方法相當於呼叫所屬類別的方法來處理目前實例。 例如之前的程式碼例子,x.display() 會被自動轉換為FirstClass.display(x),也就是呼叫類別的方法來處理實例x
- 因此,類別中每個方法必須有self參數,它隱含目前實例之意
- 在方法內對self屬性做賦值運算會產生每個實例自己的屬性
- Python規定,沒有實例,方法不允許被調用,這是'綁定'(binding)的概念
- class語句中的賦值語句會創建類別屬性,如前面範例的spam
- 在類別方法中對傳給方法的特殊參數self進行賦值會建立實例屬性
建立實例時,Python會自動呼叫類別中的init方法,以隱形的為實例提供屬性
- init方法稱為建構器
- 如果類別中沒有定義init方法,實例建立之初只是一個簡單的名稱空間。
- init的第一個參數一定是self ,self
- 變數
用於在類別實例方法中引用方法所綁定的實例。因為方法的實例在任何方法呼叫中總是作為第一個參數傳遞的,self 被選中用來代表實例。你必須在方法宣告中放上 self,但可以在方法中不使用實例(self)。如果你的方法中沒有用到 self , 那麼請考慮創建一個常規函數,除非你有特別的原因。畢竟,你的方法程式碼沒有使用實例,沒有與類別關聯其功能,這使得它看起來更像一個常規函數。在其它物件導向語言中,self 可能被稱為 this。
class MyClass(): def init(self, name): self.name = name print 'My name is ' + self.name def del(self): print self.name + ' is dead.' i1 = MyClass('Shaw') >>> My name is Shaw del i1 >>> Shaw id dead.
类的特殊属性
使用dir()或dict,查看类或实例的属性
doc:获取文档字符串
base:获取所有父类
module:类所在的模块
name:实例所属类的名字
Python类方法中可用的变量
继承
继承描述了基类的属性如何‘遗传'给派生类
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
以上是詳解python類別實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

Uvicorn是如何持續監聽HTTP請求的? Uvicorn是一個基於ASGI的輕量級Web服務器,其核心功能之一便是監聽HTTP請求並進�...

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

攻克Investing.com的反爬蟲策略許多人嘗試爬取Investing.com(https://cn.investing.com/news/latest-news)的新聞數據時,常常�...
