日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Python面向对象案例汇总

發布時間:2024/9/27 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python面向对象案例汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python面向對象案例匯總

簡介

Python是一門面向對象的語言,用這種思想為指導設計的程序,把數據和對數據的操作封裝在一起組成類,通過類來創建對象,通過對象之間的交互來實現程序的功能。

定義個空的類

class FirstClass:pass if __name__ == '__main__':c = FirstClass()print(c)#結果 <__main__.FirstClass object at 0x0000022128E17F70>

定義個學生類(僅屬性)

class Student:# 構造方法(初始化),這里傳入name和age兩個參數def __init__(self,name,age):self.name=nameself.age=ageif __name__ == '__main__':s = Student('沈亮',30);#顯示對象內存地址print(s)# 訪問對象里的name和age屬性print("{}您的年齡是:{}歲".format(s.name,s.age))#結果 <__main__.Student object at 0x0000022C7CAF7700> 沈亮您的年齡是:30歲

定義個學生類(屬性及方法)

class Student:# 構造方法(初始化),這里傳入name和age兩個參數def __init__(self,name,age):self.name=nameself.age=agedef sayInfo(self): #通過對象里的方法訪問name和age屬性print("{}您的年齡是:{}歲".format(s.name, s.age))if __name__ == '__main__':s = Student('沈亮',30);#顯示對象內存地址print(s)# 訪問對象方法s.sayInfo()#結果 <__main__.Student object at 0x000001C7F6A47700> 沈亮您的年齡是:30歲

方法內嵌套類

#方法里嵌套Converter類,如果該對象不存在則創建,最終函數通過Converter對象里的convert方法返回(完成分數和等級的轉換) def score2level(score,converter=None):class Converter:def convert(self,score):level='C'if score>=80:level='A'elif 60<score <80:level = 'B'return levelif not converter:c = Converter()return c.convert(score)if __name__ == '__main__':score=75print("您的分數是{0},對應的等級是{1}".format(score,score2level(score)))#結果 您的分數是75,對應的等級是B

計算二維平面里點到點距離

import math class Point:#初始化點的坐標,默認在原點(即x=0,y=0)def __init__(self,x=0,y=0):self.move(x,y)#設置點的坐標為(x,y)def move(self,x,y):self.x=xself.y=y#將點的坐標重置到(0,0)def reset(self):self.move(0,0)#計算兩點之間的距離(勾股定理)def calculateDistance(self,otherPoint):return math.sqrt(pow((self.x-otherPoint.x),2)+pow((self.y-otherPoint.y),2))if __name__ == '__main__':point1 = Point(3,0)point2 = Point(0,4)#計算點point1和點point2的距離print(point1.calculateDistance(point2))#計算點point3=的橫坐標x、縱坐標ypoint3=Point(4,6)print(point3.x, point3.y)#重置點point3,即作為為坐標原點point3.reset()print(point3.x,point3.y)#結果 5.0 4 6 0 0

私有屬性及私有方法

class Student:# 構造方法(初始化),這里傳入name、age、__level三個參數,其中__level是私有屬性def __init__(self,name,age,level):self.name=nameself.age=ageself.__level=leveldef sayInfo(self): #通過對象里的方法訪問name和age屬性print("{}您的年齡是:{}歲".format(self.name, self.age)) #定義私有方法 def __getLevel(self):print("{}您的等級是:{}".format(self.name, self._Student__level))if __name__ == '__main__':s= Student('ShenLiang',25,'A')#訪問私有方法時,需要加_類名__方法名s._Student__getLevel()#結果 ShenLiang您的等級是:A

查看對象的自定義屬性及其值

class Student:# 構造方法(初始化),這里傳入name、age、__level三個參數,其中__level是私有屬性def __init__(self,name,age,level):self.name=nameself.age=ageself.__level=leveldef sayInfo(self): #通過對象里的方法訪問name和age屬性print("{}您的年齡是:{}歲".format(self.name, self.age))#定義私有方法def __getLevel(self):print("{}您的等級是:{}".format(self.name, self._Student__level))if __name__ == '__main__':s= Student('ShenLiang',25,'A')# 輸出類里用戶自定義的屬性、方法print([v for v in dir(s) if not v.startswith('__')])# 輸出對象里用戶自定義的屬性及其值for item in vars(s):print(item,":",vars(s)[item])#結果 ['_Student__getLevel', '_Student__level', 'age', 'name', 'sayInfo'] name : ShenLiang age : 25 _Student__level : A

類變量及類方法的使用

class Student:cnt =0# 初始化方法def __init__(self,name,score,level):self.name = nameself.score = scoreself.__level = levelStudent.cnt +=1def sayScore(self): #對象方法操作對象屬性print("{0}\t的分數是:{1}".format(self.name,self.__level))def __getLevel(self): #私有方法的定義print("{0}當前的等級是:".format(self.name,self.__level))@classmethod #類方法操作類屬性def printCnt(cls):print(cls.cnt) if __name__ == '__main__':s1=Student('Shenliang',30,'A')s2=Student('Liangshen',20,'B')print('當前學生數:\t',Student.cnt)print("對象方式調用:") #s1和s2對象調結果都是2s1.printCnt() #s2.printCnt()#結果 當前學生數: 2 對象方式調用: 2

靜態變量的使用

class Student:cnt =0# 初始化方法def __init__(self,name,score,level):self.name = nameself.score = scoreself.__level = levelStudent.cnt +=1def sayScore(self): #對象方法操作對象屬性print("{0}\t的分數是:{1}".format(self.name,self.__level))def __getLevel(self): #私有方法的定義print("{0}當前的等級是:".format(self.name,self.__level))@classmethod #類方法操作類屬性def printCnt(cls):print(cls.cnt)@staticmethoddef add(a,b):return(a+b)if __name__ == '__main__':s1=Student('Shenliang',30,'A')s2=Student('Liangshen',20,'B')print('兩數相加的結果是:\t',Student.add(20,30))注:靜態方法不可以操作對象實例屬性及方法。

屬性裝飾器

class Student:cnt =0# 初始化方法def __init__(self,name,score,level):self.name = nameself.score = scoreself.__level = levelStudent.cnt +=1def sayScore(self): #對象方法操作對象屬性print("{0}\t的分數是:{1}".format(self.name,self.__level))def __getLevel(self): #私有方法的定義print("{0}當前的等級是:".format(self.name,self.__level))@propertydef level(self):return self.__levelif __name__ == '__main__':s1=Student('Shenliang',30,'C')print("{0}您的等級是{1}".format(s1.name,s1.level))#結果 Shenliang您的等級是C

總結

以上是生活随笔為你收集整理的Python面向对象案例汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。