Python物件導向學習筆記 類 屬性 方法

2021-08-18 10:43:32 字數 2665 閱讀 9920

函式

python2

python3

定義普通類

class name(object):

class name:

建構函式

def__init__(self, parameter1,parameter2 …):

析構函式

def__del__(sel, parameter1, parameter2 …):

檢視型別

type()

檢視屬性

dir()

普通類方法:

def fun_name(self,…):

pass

外部用例項呼叫

類方法:@classmethod

不能訪問例項屬性!!! 引數必須傳入cls!!!

self代表例項物件,呼叫類屬性:cls.類屬性名

靜態方法與類方法都可以通過類或者例項來呼叫,但都不能夠呼叫例項屬性

建立唯讀屬性,像使用屬性一樣呼叫方法:@property

類,方法,屬性的使用

class

programmer:

age = 12

_music = 'none'

__more = 'more'

def__init__

(self, name, hobby):

self.__name = name

self.__hobby = hobby

@property #建立唯讀屬性,像使用屬性一樣呼叫方法

defname

(self):

print("i am not a property but a function")

return self.__name

@classmethod #可以不用例項化,用類名呼叫方法

defgetmore

(cls):

return cls.__more

if __name__=="__main__":

a = programmer("learningpython", "coding") #建立乙個programmer例項物件

print(programmer.getmore()) #使用@classmethod定義的類方法,獲取私有類屬性的值

print(a.name) #使用@property 修飾的方法,像使用屬性一樣呼叫name()方法並獲取其返回值

print(programmer.age) #使用類名.類屬性名的方式獲取公有的類屬性

print(programmer._music) #使用類名.類屬性名的方式獲取 可以訪問 但暗示你是私有的 不要隨意訪問的 類屬性

print(a._programmer__hobby) #類外訪問私有例項屬性名

print(a._programmer__more) #類外訪問私有類屬性名

out result :

more

i am not a property but a function

learningpython

12 none

coding

more

process finished with exit code 0

property 的 getter,setter 和 deleter 方法用作裝飾器

class

c:def

__init__

(self):

self._x = none

@property

defx

(self):

"""i'm the 'x' property."""

return self._x

@x.setter

defx

(self, value):

self._x = value

@x.deleter

defx

(self):

del self._x

if __name__ == "__main__":

aisinstance = c()

print(aisinstance.x)

aisinstance.x = 5

#相當於呼叫@x.setter後的函式def x (self, 5):

print(aisinstance.x)

del aisinstance.x #相當於呼叫@x.deleter後的函式def x (self): ,刪除了新建的例項

#print(aisinstance.x) #刪除後便無法print了,不然會出錯

out result:

none

5 process finished with exit code 0

進一步更細緻地了解@property,可以看一下這篇部落格

Python學習筆記 物件導向

物件導向 oop 基本概念 物件導向程式設計 object oriented programming簡寫 oop 1 物件導向基本概念 之前的學習程式設計方式就是面向過程的 面向過程和物件導向,是兩種不同的程式設計方式 對比面向過程的特點,可以更好的了解什麼是物件導向 2 過程和函式 科普 過程是最...

python 筆記4 類(物件導向?)

1 定義 init 為建構函式 其中 metaclass type 確定使用新式類,python3.0 以後就不用考慮新式類的問題,類的定義 顯然在類的定義中每乙個函式引數列表的第乙個都應該是self,self 也就是物件本身,而 self 也是區分方法和物件函式的標誌。2 訪問許可權 通過上面的案...

python學習 物件導向 類 物件 繼承

約定成俗的類的命名方式 1 首字母大寫 2 為了與其他進行區分盡量避免使用 建議採用studenthomework小駝峰的格式 類的常規格式 class student 定義變數 資料成員 student sum 80 類變數 建構函式 def init self,name,age 其中的self....