本篇內(nèi)容介紹了“怎么定義Python面向對象”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)維西免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。面向對象
類 - class
對象
class Student(): #定義一個類 name = '' #定義變量 age = 0 def print_file(self): #定義一個方法 print("name:"+self.name) print('age:'+str(self.age)) #輸出 student =Student() #實例化一個對象 student.print_file() #調(diào)用方法
【注】:self 在每個方法括號中都必須寫上,這個相當于java中的 this 關鍵字。
但 self按嚴格來說它不是python的關鍵字,self可以是任何符合的字符串,只是python官方推薦使用 self 而已
類與對象:類像一個模板一樣,可以產(chǎn)生各種各樣的對象
構造函數(shù)
def __init__(self,name): #構造函數(shù) self.name=name self.source= 0 print(name) #調(diào)用實例變量 方式1 print(self.name) #調(diào)用實例變量 方式2 print(self.__class__.name)#調(diào)用類變量 方式1
部分特性和java差不多
類變量和實例變量
實例變量:通過實例對象調(diào)用的變量和在構造函數(shù)中定義過的 如上述構造函數(shù)類代碼
print(name) #調(diào)用實例變量 方式1 print(self.name) #調(diào)用實例變量 方式2
類變量:通過類名直接調(diào)用的,或者在實例函數(shù)中使用 self.class.變量名調(diào)用的 如上述代碼
print(self.__class__.name) #調(diào)用類變量 方式1 Student.name #調(diào)用類變量 方式2
方法
實例方法
就是一般的定義方法,關聯(lián)實例對象
def show(self): pass
【注】:關鍵字 pass 相當于一個占位 在還沒想好邏輯的時候可以使用它 反正代碼報錯
類方法
方法上使用裝飾器 @classmethod 以及必傳參數(shù) cls
#類方法 @classmethod def plus_sum(cls): cls.sum +=1 print(cls.sum) #調(diào)用類變量
【注】: cls 字符串 和self的作用差不多,只是只能用在類方法上
在類方法中調(diào)用類變量的方式與實例方法不同
self.__calss__.name #實例方法調(diào)用類變量 cls.name #類方法調(diào)用類變量
靜態(tài)方法
方法上使用裝飾器 @staticmethod,和類方法的區(qū)別就是不用傳cls,一般不推薦使用
#靜態(tài)方法 @staticmethod def plus_sum(): pass
要點:一般保證數(shù)據(jù)的安全不能直接給數(shù)據(jù)賦值,要在方法中進行完成,方法中可以進行判斷,體現(xiàn)了python的面向對象的封裝性
私有
私有方法
在方法前面加 ‘__’ 雙下劃線
def __sum(self): pass
私有方法外部強行調(diào)用會報錯
私有變量
在變量前面加 ‘__’ 雙下劃線
__name = '小米'
無法進行私有變量調(diào)用,
student = Student() #實例化 print(student.__name)
因為python的動態(tài)機制,這里其實是重新定義了一個變量 __name
可以使用 _dict _ 來查看當前對象的所以變量信息
print(student.__dict__) #輸出詳細
可以從輸出的內(nèi)容中可以看到,原來的變量變成了 類名加變量名 如:_Student__name
面向對象-繼承
python的繼承特性和java的繼承特性差不多,相信有java繼承的會更好的理解
父類
#父類 2019-8-28 class Human(): sum = 0 def __init__(self,name,age): self.name=name self.age=age def show(self): print("父類的方法")
子類
from m4 import Human #導入父類 m4為文件名 Human為類名 class Student(Human): #繼承父類 def __init__(self,school,name,age): self.school=school #調(diào)用父類的構造函數(shù) 需要加入self 方式一 Human.__init__(self,name,age) #方式二 使用super關鍵字 super(Student,self).__init__(name,age) def out(self): #調(diào)用父類方法 super(Student,self).show() print("加油") ss = Student('社會','44',5) print(ss.name) print(ss.age) ss.out()
調(diào)用父類的兩種方式
方式一
#調(diào)用父類的構造函數(shù) 需要加入self 方式一 Human.__init__(self,name,age)
方式二
使用關鍵字 super
#方式二 使用super關鍵字 super(Student,self).__init__(name,age)
“怎么定義Python面向對象”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司網(wǎng)站,小編將為大家輸出更多高質量的實用文章!
當前名稱:怎么定義Python面向對象-創(chuàng)新互聯(lián)
文章地址:http://jinyejixie.com/article18/dipogp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、定制開發(fā)、網(wǎng)站收錄、網(wǎng)站設計公司、動態(tài)網(wǎng)站、移動網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容