python函數和類的區別_Python中類中的方法還有區別?


 

Python類中的三種方法

Python中的方法可以分為三類:

實例方法:第一個參數是實例對象 self,必須通過實例去調用。

類方法:需要在方法前加 @classmethod 修飾,第一個參數是類本身,一般寫作cls,類和實例都可以調用。

靜態方法:需要在方法前加 @staticmethod修飾,沒有隱含傳遞的參數:方法體中不能使用類或實例的任何屬性和方法

這里的@classmethod 和 @staticmethod 都是函數裝飾器(Decorators),簡單來說它是一個修改其它函數的功能的函數。具體的細節涉及到Python更深層的東西。在這里我們只需要了解只要它倆出現,那么這個方法就是類方法或者靜態方法。

self是什么了,在這里簡單再說一下,我們可以使用self指代的是當前的實例,相當於每個實例的鑰匙,根據self,每個實例只能調用自己的變量和方法。

實際使用中如何選擇三種方法

那么說了這么多,比較了這三種方法的差異,那么為什么會有這三種方法的區別呢?因為他們對於不同屬性的調用有所區別,可被調用的對象不同,所以在實際使用中就是根據這些差異來選擇最合適的方法。

實例方法是類中最普遍的方法,我們通常定義的都是實例方法,不需要多說了。

關於類方法,如果說我現在要定義一個方法,這個方法只需要調用類屬性,也只在把類當作一個對象使用的時候才會需要這個方法,或者說在邏輯上采用類本身作為對象來調用更合理,這時候就應該使用類方法。

關於靜態方法,我們可以發現它不需要任何的參數,不會涉及到類中的屬性和方法的操作。本質上說它只是在邏輯上邏輯上屬於類,但是和類本身沒有關系,在碰到這種情況時可以定義靜態方法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM