1. 面向?qū)ο蟮母拍?)類是一類抽象的事物,對(duì)象是一個(gè)具體的事物;用類創(chuàng)建對(duì)象的過(guò)程,稱為實(shí)例化 。
2)類就是一個(gè)模子,只知道在這個(gè)模子里有什么屬性、什么方法,但是不知道這些屬性、方法具體是什么;
所以,我們要在這個(gè)模子的基礎(chǔ)上 造出一個(gè)具體的實(shí)例(對(duì)象),這個(gè)實(shí)例就會(huì)具體化屬性、方法
3)所有的數(shù)據(jù)類型都是類,都是抽象的;根據(jù)數(shù)據(jù)類型定義變量,該變量就是一個(gè)具體的值(對(duì)象) 。
面向過(guò)程 --> 面向?qū)ο蟮霓D(zhuǎn)變
定義一個(gè)函數(shù) 《==》 定義一個(gè)類
函數(shù)的返回值(字典) 《==》類的對(duì)象(類似字典,只不過(guò)調(diào)用方式發(fā)生了改變)
函數(shù)的執(zhí)行過(guò)程 《==》類的實(shí)例化
請(qǐng)看 代碼展示1 和 代碼展示2
1 # 用面向?qū)ο蟮乃枷搿⒚嫦蜻^(guò)程的語(yǔ)法 去實(shí)現(xiàn) Rectangle的計(jì)算 2 def Rectangle(length=0, width=0): 3 self = {} # 存儲(chǔ)屬性值 4 def __init__(*args): # 初始化函數(shù) -- 完成對(duì)矩陣rectangle的長(zhǎng)、寬初始化,以及面積、周長(zhǎng)的調(diào)用方式 5 self['length'] = args[0] 6 self['width'] = args[1] 7 self['area'] = area 8 self['perimeter'] = perimeter 9 def area():10 return self['length'] * self['width']11 def perimeter():12 return 2 * (self['length'] + self['width'])13 __init__(length, width) # 調(diào)用初始化函數(shù)14 return self1516 rec_obj = Rectangle(10,5) # rec_obj 相當(dāng)于類的一個(gè)實(shí)例17 print(rec_obj) # rec_obj中存放了實(shí)例的屬性、方法,通過(guò)實(shí)例可以查看屬性 與 調(diào)用方法18 print('length:%s, width:%s, area:%s, perimeter:%s'\19 %(rec_obj['length'], rec_obj['width'], rec_obj['area'](), rec_obj['perimeter']()))代碼展示1
1 class Rectangle: 2 temVar = 'over' #定義靜態(tài)屬性,共享于類中的每個(gè)對(duì)象 3 def __init__(self, *args): # 創(chuàng)建對(duì)象后執(zhí)行的第一個(gè)函數(shù),self就是類創(chuàng)建的對(duì)象,該函數(shù)返回類的對(duì)象self 4 self.length = args[0] 5 self.width = args[1] 6 def area(self): 7 return self.length * self.width 8 def perimeter(self): 9 return 2 * (self.length + self.width)1011 rec_obj1 = Rectangle(10, 5) # 實(shí)例化一個(gè)具體對(duì)象1213 # 通過(guò) 對(duì)象 查看屬性(包括靜態(tài)屬性)與調(diào)用方法14 print('length:%s, width:%s, area:%s, perimeter:%s'\15 %(rec_obj1.length, rec_obj1.width, rec_obj1.area(), rec_obj1.perimeter()))16 print(rec_obj1.temVar) # 靜態(tài)屬性1718 # 通過(guò) 類名 調(diào)用方法 、類中的靜態(tài)屬性19 print('area:%s, perimeter:%s'%( Rectangle.area(rec_obj1), Rectangle.perimeter(rec_obj1)))20 print(Rectangle.temVar) # 靜態(tài)屬性2122 # 通過(guò)對(duì)象名修改屬性(若self里 存在該屬性,是修改;若self里 不存在該屬性,是添加新屬性)23 # rec_obj1.length = 2024 # rec_obj1.temVar = 'object_over' # 給對(duì)象中添加一個(gè)新屬性 'temVar': 'object_over'25 # 通過(guò)類名修改屬性(若類里 存在該屬性<靜態(tài)屬性>,是修改;若類里 不存在該屬性,是添加新屬性,<靜態(tài)屬性>)26 # Rectangle.length = 50 # 在類中添加一個(gè)新屬性 'length': 5027 # Rectangle.temVar = 'class_over'2829 # __dict__的使用30 print(rec_obj1.__dict__) # 查看對(duì)象的所有屬性,即self屬性31 print(Rectangle.__dict__) # 查看類的所有靜態(tài)屬性、方法32 # __dict__ 對(duì)于 對(duì)象的 增刪改查操作都可以通過(guò)字典的語(yǔ)法進(jìn)行33 # __dict__ 對(duì)于 類中的名字只能看 不能操作
經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀
- 溫度升高電阻怎么變化
- 2023年屬蛇人最佳結(jié)婚日子是哪幾天 屬蛇人結(jié)婚吉日查詢
- 2023年適合屬馬人結(jié)婚的吉日查詢 屬馬人結(jié)婚吉日查詢
- 2023年適合屬羊人結(jié)婚的吉日查詢 屬羊人結(jié)婚吉日查詢
- 2023年屬豬人結(jié)婚的良辰吉日查詢 屬豬人結(jié)婚吉日查詢
- 屬兔2023本命年年結(jié)婚好嗎挑選良辰吉日結(jié)婚安全幸福
- 美赫吊頂屬于幾線品牌?
- 88年屬龍的是什么命
- 沌口屬于武漢哪個(gè)區(qū)
- 奧迪A3適合男人開(kāi)嗎
