python屬性和方法的區別是什麼

westwolf發表於2021-09-11

python屬性和方法的區別是什麼

物件的建立

建立物件的過程稱之為例項化;當一個物件被建立後,包含三個方面的特性:物件控制程式碼、屬性和方法。

控制程式碼用於區分不同的物件

物件的屬性和方法與類中的成員變數和成員函式對應

obj=MyClass() //建立類的一個例項(物件)透過物件來呼叫方法和屬性

類的屬性

類的屬性按使用範圍:公有屬性和私有屬性,

類的屬性範圍取決於屬性的名稱。

公有屬性:在類中和類外都能呼叫屬性。

私有屬性:不能在類外及被類意外的函式呼叫。

定義方式:以“_”雙下劃線開始的成員變數就是私有屬性

私有屬性,可以透過instance._classname_attribute方式訪問。

內建屬性:有系統在定義類的時候預設新增的,由前後雙下劃線構成,dict,module.

#!/usr/bin/env python
#-*-coding:utf-8-*-
#@Time   : 2018/1/11 15:48
#!@Auther:bestsky
#!@File  :demon1-class attributes.py
class People(object):
    color = "yellow"
    __age = 30  #私有屬性
    def think(self):
        self.color = "black"
        print ("I am a %s" %self.color)
        # print self.__age
ren = People()
print ren
print ren.color
ren.think()

print ren._People__age  #私有屬性呼叫方法,建議:僅程式測試使用

類的方法

方法的定義和函式一樣,但是需要self作為第一個引數

類的方法為:

公有方法

公有方法:在類中和類外都能呼叫的方法

私有方法

私有方法:不能被類外部呼叫,在方法前面加上“__“雙下劃線就是私有方法;

類方法

類方法:被classmethod()函式處理過的函式,能被類所呼叫,也能被物件所呼叫(是繼承的關係)

靜態方法

靜態方法:相當於“全域性函式”,可以被類直接呼叫,可以被所有例項化物件共享,透過staticmethod()定義, 靜態方法沒有“self”引數。

self引數

用於區分函式和類的方法(必須有一個self),self參數列示執行物件本身。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4662/viewspace-2835501/,如需轉載,請註明出處,否則將追究法律責任。

相關文章