日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python基础(第九章)面向对象

發(fā)布時(shí)間:2023/12/14 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python基础(第九章)面向对象 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

print('---面向?qū)ο?/span>-----')
'''
知識(shí)點(diǎn)匯總
1-面向?qū)ο蟮囊?#xff1a;
??? 1-先找出相應(yīng)的對(duì)象
??? 2-把這些涉及的對(duì)象的關(guān)系進(jìn)行組網(wǎng)
2-類(lèi)/實(shí)例
??? 1-類(lèi):
??????? 1-現(xiàn)實(shí)不存在--抽象的概念--人類(lèi)--鳥(niǎo)類(lèi)
??????? 2-一類(lèi)具有相同特征的事物的統(tǒng)稱(chēng)!
??? 2-類(lèi)里面有
??????? 1-靜態(tài)---屬性(特征)---變量
??????? 2-動(dòng)態(tài)---方法(行為)---函數(shù)
3-實(shí)例---也叫 對(duì)象
??? 1-在這個(gè)類(lèi)里面實(shí)際存在的個(gè)體
??? 2-類(lèi)是實(shí)例的抽象化概念
??? 3-實(shí)例是類(lèi)的具體實(shí)例化體現(xiàn)??????
4-
實(shí)例化操作:???????
??? 1-
類(lèi)里面的變量--屬性
??? 2-類(lèi)里面的函數(shù)--方法
??? 3-創(chuàng)建實(shí)例 t1 = Tiger()??
5-
靜態(tài)屬性和實(shí)例屬性
??? 1-靜態(tài)屬性:
??????? 1-也叫類(lèi)屬性
??????? 2-它屬于整個(gè)類(lèi)的
??????? 3-用法:1-類(lèi).屬性??? 2-實(shí)例.屬性
??? 2-實(shí)例屬性:
??????? 1-這個(gè)屬性是? 那個(gè)實(shí)例的,不屬于整個(gè)類(lèi)---其他實(shí)例不能共享??
??????? 2-
定義在 初始化方法 __init__
??????? 3-一般在創(chuàng)建實(shí)例的時(shí)候就給定
??????? 4-只要?jiǎng)?chuàng)建實(shí)例--def __init__(self):初始化方法肯定會(huì)調(diào)用
??????? 5-self 只是代表詞,并不是關(guān)鍵字--可以替換,但不建議替換!不能缺省
? ??????6-id(self)
??????? 7-
實(shí)例化屬性---只能??? 實(shí)例.屬性
??????? 8- self 這個(gè)實(shí)例的本身
6-方法:
??? 1-靜態(tài)方法
??????? 1-屬于整個(gè)類(lèi)
??????? 2-類(lèi)可以直接調(diào)用,不需要實(shí)例化 ----類(lèi).方法 / 實(shí)例.方法
??????? 3- @staticmethod 修飾 只能修飾緊跟的那一個(gè)
??? 2-實(shí)例方法:
??????? 1-self?
??????? 2-
實(shí)例.方法
7-取隨機(jī)數(shù)
??? from random? import randint
??? randint(0,2)--
0 1 2 閉區(qū)間
8-時(shí)間處理:
??? 1- import time
?????? time.time()---
單位是s 秒?? 從1970算起
9-繼承
??? 1-繼承關(guān)系可以是多個(gè)父類(lèi)
??? 2-重寫(xiě)--在父類(lèi)跟子類(lèi)之間的一個(gè)多態(tài)的體現(xiàn)!
??? 3-在重寫(xiě)情況下,調(diào)用父類(lèi)的方法
??????? super(SouTiger,s1).roar()
??????? super(
子類(lèi)類(lèi)名,子類(lèi)的實(shí)例名).roar()
??? 4- __name???
私有屬性
'''
'''

游戲分解:
??? 1- 找出涉及的對(duì)象:類(lèi)
??????? 1- 房間
??????? 2-
??????? 3- 老虎
??????????? 1- 俗稱(chēng):特征--專(zhuān)業(yè)術(shù)語(yǔ)--屬性;本質(zhì):變量
??????????????? 1- 胖瘦--*體重---實(shí)例屬性
??????????????? 2- 外貌
??????????????? 3- 叫聲--*
??????????????? 4-
大小
?????????? ?????5- 年齡
??????????????? 6- 統(tǒng)稱(chēng)
??????????? 2- 俗語(yǔ):行為---專(zhuān)業(yè)術(shù)語(yǔ):方法;本質(zhì)是--函數(shù)
??????????????? 1- ---*實(shí)例屬性
??????????????? 2-
??????????????? 3-
??????????????? 4- --*實(shí)例屬性
??? 2- 組織關(guān)系
??
??
'''
'''
1-
屬性:
??? 1- 靜態(tài)屬性--整個(gè)類(lèi)的實(shí)例共有的
??????? 1- 調(diào)用:
??????????? 實(shí)例
.屬性
??????????? 類(lèi)
.屬性
??? 2- 實(shí)例屬性:每一個(gè)實(shí)例都可以不一樣---體重/名字
??????? 1- 使用__init__(self)--初始化方法--構(gòu)造方法
??????? 2- 調(diào)用:
??????????? 1- 實(shí)例.屬性
??????????? 2- 類(lèi).屬性---不能
???

2-
方法:

'''
class Tiger:
???
className = '老虎'#屬性---本質(zhì)就是變量屬于---類(lèi)---靜態(tài)(類(lèi))屬性--這個(gè)類(lèi)的實(shí)例共有
???
__height = 120#私有
???
def __init__(self,inWeight):#初始化方法-只要?jiǎng)?chuàng)建實(shí)例就一定會(huì)調(diào)用?? t1---傳給self
???????
print('我被執(zhí)行了',inWeight)
???????
self.weight = inWeight
???
#實(shí)例方法--告訴體重
???
def tell_weight(self):
???????
print('我的體重是{}'.format(self.weight))

???
#---形參帶self---實(shí)例方法
???
def roar(self):
???????
print('wow!---體重減5')
???????
self.weight -= 5

???
#喂食
???
def feed(self,food):
??????? if
food ==
'':
???????????
self.weight += 10
???????????
print('喂食正確,體重增加10')
??????? else:
???????????
self.weight -= 10
???????????
print('喂食錯(cuò)誤,體重減少10')

???
#靜態(tài)方法---共有---沒(méi)有self
???
@staticmethod#只能保緊跟著的一個(gè)
???
def static_roar():
???????
print('父類(lèi)的靜態(tài)方法---wow!')



class
Sheep:
??? pass

class
Room:
??? def
__init__(self,inNum,inAnimal):
???????
self.num = inNum
???????
self.animal = inAnimal


#創(chuàng)建實(shí)例---t1--
# t1 = Tiger(100)
#
繼承----功能擴(kuò)展----減少代碼的重編碼--減少重復(fù)
class SouTiger(Tiger):
??? def
__init__(self,inweight,inAge):
???????
Tiger.
__init__(self,inweight)
???????
self.age = inAge
???
@staticmethod#只能保緊跟著的一個(gè)
???
def static_roar():
???????
print('子類(lèi)的靜態(tài)方法---wow!')



s1 =
SouTiger(150,20)
print(s1.weight)

s1.
static_roar()#直接調(diào)用是子類(lèi)的
super(SouTiger,s1).static_roar()#調(diào)用父類(lèi)的方法? super(子類(lèi)的類(lèi)名,子類(lèi)的實(shí)例名).方法

Tiger.static_roar()
# print(s1.className)
# print(s1.age)
# print(s1.__height)

# # t1.roar()
# # t1.feed('
')
# # t1.tell_weight()
# #
# # Tiger.static_roar()
# # t1.static_roar()
#
#
# r1 = Room(1,t1)
#
# r1.animal.roar()
#
# #
隨機(jī)數(shù)處理
# from random import randint
# print(randint(0,2))#
左右都包含
#
#
# roomList = []#10
個(gè)房間實(shí)例
# for num in range(1,11):
#???? if randint(0,1) == 0:
#???????? ani = Tiger()
#???? else:
#???????? ani = Sheep()
#???? room = Room(num,ani)
#???? roomList.append(room)
#
# namelist = ['tom','jack']
# print(namelist[randint(0,len(namelist)-1)])
#
#
# import time
# # print(time.time())#
單位是s 1970---至今
#
#
# startTime = time.time()
# while True:
#???? curTime = time.time()
#???? if curTime - startTime > 120:
#???????? break





# t2 = Tiger()
#
# t2.tell_weight()
# print(Tiger.weight)#
不能操作

# print(t1.className)
# t2 = Tiger()
# print(t2.className)
# print(Tiger.className)

?

?

擴(kuò)展知識(shí)點(diǎn)多繼承
# 多繼承--方法重寫(xiě)--
class SouTiger(Tiger,Sheep):#華南虎---繼承特點(diǎn):便于擴(kuò)展--提高效率--減少編碼量
???
# def __init__(self):
??? #???? Tiger.__init__(self,inWeight=200)
???
@staticmethod
???
def static_roar():
???????
print('子類(lèi)的----叫方法')
??? def
feed(self,food):
???????
print('子類(lèi)的實(shí)例方法-----')

#1- 調(diào)用指定父類(lèi)靜態(tài)方法
#父類(lèi)類(lèi)名.方法(子類(lèi)的實(shí)例名)
Tiger.static_roar()
#2- 調(diào)用指定父類(lèi)實(shí)例方法--Sheep
super(Tiger,s1).feed('')

resList = []#存儲(chǔ)結(jié)果? [[類(lèi)型1,大小1][類(lèi)型2,大小2][類(lèi)型3,大小3]]

resDict = {}#{'類(lèi)型1':大小,'類(lèi)型2':大小}
lines = log.split('\n')
del lines[
0],lines[-1]
for line in lines:
???
infoList = line.
split('\t')#list
???
fileType = infoList[0].split('.')[1].strip()
??? fileSize =
int(infoList[1].strip())#轉(zhuǎn)換類(lèi)型
???
#2- 同類(lèi)型統(tǒng)計(jì)---最簡(jiǎn)單方法----字典做!
???
if fileType not in resDict:#如果沒(méi)改類(lèi)型--新增
???????
resDict[fileType] = fileSize

??? else:
#累加
???????
resDict[fileType] += fileSize




??? inFlag = False
#默認(rèn)不存在---需要進(jìn)過(guò)遍歷去核實(shí)該類(lèi)型存不存在
???
#先查找--匹配看有沒(méi)有該類(lèi)型
???
for one in resList:#list
???????
if fileType == one[0]:
???????????
one[
1] += fileSize #累加大小
???????????
inFlag = True#表示狀態(tài)-----print('該類(lèi)型存在')
???????????
break#匹配完成,后續(xù)不需要匹配


???
if inFlag == False:
???????
resList.
append([fileType,fileSize])



print(resDict)
print(resList)

?

總結(jié)

以上是生活随笔為你收集整理的python基础(第九章)面向对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。