Python中面向对象的讲解(1)
面向對象編程的2個非常重要的概念:
類和對象
對象是面向對象編程的核心,在使用對象的過程中,為了將具有共同特征和行為的一組對象抽象定義,提出了另外一個新的概念——類。
類用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
類是由三部分構成:
類的名稱
類的屬性
類的方法
格式如下:
# 類名 class Func(object):# 類的屬性i=123# 類的方法def f(self):print('6666')# 實例化類 a=Func() # 訪問類的屬性 print(a.i) # 調用類的方法 a.f()object 是Python 里所有類的最頂級父類;
類名 的命名規則按照"大駝峰命名法";
f 是一個實例方法,第一個參數一般是self,表示實例對象本身,當然了可以將self換為其它的名字,其作用是一個變量 這個變量指向了實例對象
魔法方法
1.init
Python 的類里提供的,兩個下劃線開始,兩個下劃線結束的方法,就是魔法方法,init()就是一個魔法方法,通常用來做屬性初始化 或 賦值 操作(作用)。
如果類面沒有寫__init__方法,Python會自動創建,但是不執行任何操作
如果為了能夠在完成自己想要的功能,可以自己定義__init__方法
所以一個類里無論自己是否編寫__init__方法 一定有__init__方法
案例:
# 類名 class Func(object):def __init__(self,name,age):self.name=nameself.age=age# 類的屬性i=123# 類的方法def f(self):print('我的名字叫%s,今年%d歲了'%(self.name,self.age))# 實例化類 a=Func('大飛',24) # 訪問類的屬性 print(a.i) # 調用類的方法 a.f()init(self)中,默認有1個參數名字為self,如果在創建對象時傳遞了2個實參,那么__init__(self)中出了self作為第一個形參外還需要2個形參,例如__init__(self,x,y)
注意:
1). 在類內部獲取 屬性 和 實例方法,通過self獲取;
2). 在類外部獲取 屬性 和 實例方法,通過對象名獲取。
3). 如果一個類有多個對象,每個對象的屬性是各自保存的,都有各自獨立的地址;
4). 但是實例方法是所有對象共享的,只占用一份內存空間。類會通過self來判斷是哪個對象調用了實例方法。
2.str
str 如果一個類中定義了__str__方法,在打印對象時,默認輸出該方法的返回值,沒有定義會返回對象的地址
class Func(object):def __init__(self,name,age):self.name=nameself.age=agea=Func('大飛',24) print(a)
調用__str__方法,輸出結果是該方法的返回值
總結:實例化對象時會調用__str__()方法,如果沒有定義__str__()方法會打印一個對象的地址,如果定義__str__()并且有返回值,就會打印其中的返回值
3.del
當刪除對象時,python解釋器會默認調用一個方法,這個方法為__del__()方法
class Dog(object):def __init__(self,name):self.name =nameprint("__init__方法被調用")def __del__(self):print("__del__方法被調用")print("python解釋器開始回收%s對象了" % self.name) p = Dog('Bob') del p總結
以上是生活随笔為你收集整理的Python中面向对象的讲解(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中文件的介绍以及操作
- 下一篇: Python中面向对象的讲解(2)