面向對象類
定義類
            
              在python中,將具有相同屬性和方法的對象歸為一個類,在使用類之前,首先得創建類
            
            
             類創建的語法:
          
            
              class 類名:
	語句
            
          
          類的用法
類只有在實例化才能使用,類的調用和函數的調用差不多,用類名()就可以實例化類
類對象
類實例化就生成了一個對象,它支持兩種操作
- 屬性的引用
 - 實例化
 
類方法
定義類的方法和定義函數差不多,區別如下:
- 方法的第一個參數必須是self,而且不能省略
 - 方法的調用必須先實例化該類,用實例名.方法名(參數)來調用
 
構造方法
構造函數就是類實例化初始化數據, init ()方法就是構造方法
            
              class person:
	"""人類"""
	def __init__(self,name,age):
		"""初始化名字和年齡"""
		self.name=name
		self.age=age
	def talking(self):
		print(self.name.title()+"叫了你一聲")
	def playball(self):
		print(str(self.age)+"的"+self.name+"正在打球")
            
          
          
            
              類可以創建多個實例,通過
              
                實例名=類()
              
              來創建的,類就是一個抽象的具有相同屬性,功能的模板,可以創建很多實例
            
          
私有方法
            python中私有屬性,方法,完全取決于它的名字,名字
            
              以__開始
            
            的就是私有屬性或者方法,當類的內部調用用 
            
              .
            
            來調用私有屬性
            
            
              私有函數,屬性,方法有以下特點:
            
          
- 
              私有函數不可以被它的
              
模塊外部調用 - 
              私有方法不能從
              
類的外部調用 - 
              私有屬性不能從
              
類的外部被訪問 
析構方法
            python中析構方法是__del__(),當調用del()內置對象刪除是會調用它本身的析構函數__del__(),當某個對象調用完畢后,也會調用一次析構函數來釋放資源,例如:下面是我對堆和棧的理解,再加上類的析構函數,
            
              希望多多指教
            
            
            
              小朋友手上只能抓住三個氣球,他拿著三個氣球。氣球本身就是一個對象,而手上的線就是對象的引用,當小朋友放開手中的線,那么對象就沒有得到引用,氣球就飛掉了,就是小朋友手中少抓了一個氣球,小朋友可以輕松一點,也就是我們說的釋放資源,自己調用了__del__()對象
            
          
靜態方法和類方法
- 實例方法:隱含調用的參數是類的實例
 - 
              類方法:隱含調用的參數是類,定義類方法使用
              
裝飾器@classmethod必須有默認參數cls - 
              靜態方法:沒有隱含調用參數,定義靜態方法使用
              
修飾符@staticmethod進行修飾,沒有默認參數 
            在調用類方法和靜態方法時,可以使用
            
              類名進行調用
            
            ,在調用前無須實例化,也
            
              可以通過實例來進行調用
            
          
類的專有方法
- new ():是在實例創建之前被調用的,用于創建實例
 - init ():構造函數,在生成實例之后調用
 - del ():析構函數,在釋放資源時調用
 - repr ():打印,轉換
 - setitem ():按照索引賦值
 - getitem ():按照索引獲取值
 - len ():獲得長度
 - cmp ():比較運算
 - call ():函數調用
 - add ():加運算
 - sub ():減運算
 - mul ():乘運算
 - div ():除運算
 - mod ():求余運算
 - pow ():乘法
 
類屬性
在類中將屬性分為實例屬性和類屬性
- 實例屬性:同一個類的不同實例,值沒有關聯,使用self.屬性定義和調用
 - 
              類屬性:
              
同一個類所有實例共用的,在類中獨立定義,使用類名.類變量名引用,只要一個實例發生改變其他實例也會發生改變 
修改屬性值
python中有兩種方法來修改屬性值:
- 
              
直接通過實例來修改
實例.屬性=值
 - 
              
通過自定義方法修改
通過自定義更新值,自定義增加值來修改值
 
私有屬性
私有屬性通過__屬性名定義的,只能類內部訪問,類外部訪問會提示找不到相關屬性或者方法
嚴格意義上來說在類的外面也可以調用私有屬性,只是難以處理,python中沒有真正的私有
繼承
類的繼承是新建的類獲取已有的類的屬性,方法,變量等,繼承的類可以稱為派生類或者子類,被繼承的類稱為基類或者父類
定義子類
            
              class 子類(父類):
	語句
            
          
          多繼承
            子類可以獲取父類的特性,子類可以繼承多個父類用
            
              ,
            
            隔開,比如父類的方法名一樣,那么按順序繼承
            
             子類調用父類的方法可以用super()函數
          
            
              多繼承
class 子類(父類,父類):
	語句
            
          
          
            
              子類方法:
	super().方法
            
          
          子類也可以定義自己的屬性和方法,子類也可以被繼承,父類的私有屬性和方法不能被繼承,但是可以被子類重寫
            
              class a:
	def __init()__(self,name):
		self.__name=”小包“
		self.age=18
class b(a):
	def sayname(self):
		print (self.__name)
X=b()
X.sayname()
            
          
          方法重寫
就是方法名和父類的方法名一樣,就可以把父類的方法改成子類的方法
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
					微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
					
