函式
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 :property 的 getter,setter 和 deleter 方法用作裝飾器more
i am not a property but a function
learningpython
12 none
coding
more
process finished with exit code 0
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:進一步更細緻地了解@property,可以看一下這篇部落格none
5 process finished with exit code 0
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....