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

歡迎訪問 生活随笔!

生活随笔

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

python

python高级2

發(fā)布時間:2023/12/18 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python高级2 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

面向?qū)ο?/h1>

1.類的定義

語法

class 類名():屬于該類的屬性和行為

縮進(jìn)也是四個空格

2.屬性的定義

# 屬性的定義 # 屬性分為:靜態(tài)屬性和實(shí)例屬性 # 靜態(tài)屬性指的實(shí)例對象所共有的屬性 # 實(shí)例屬性指的每一個實(shí)例對象所獨(dú)有的屬性 # self指的是實(shí)例化對象本身 class Tiger():# 靜態(tài)屬性name = "老虎"# 體重(實(shí)例屬性)def __init__(self, w):# 屬性的定義個變量有點(diǎn)類似self.w = w# # 輸出老虎的體重,# print(self.w) # 要產(chǎn)生對象,其實(shí)就是根據(jù)類進(jìn)行實(shí)例化而已 # 在類的實(shí)例化的時候,會執(zhí)行初始化方法init print("----------------------------------") t1 = Tiger(200) # 實(shí)例屬性 print("t1的體重:", t1.w) # 訪問靜態(tài)屬性:1、通過實(shí)例化對象訪問t1.name 2.也可以通過 類名.屬性名 訪問靜態(tài)屬性 print("name靜態(tài)屬性的值為:", t1.name) print("name靜態(tài)屬性的值為:", Tiger.name)

3.方法的定義

# 方式對應(yīng)的就是行為,其實(shí)是使用函數(shù)來表示 """ 靜態(tài)方法:靜態(tài)方法就是所有的實(shí)例對象所共有的方法 實(shí)例方法:每一個實(shí)例對象所獨(dú)有的方法,實(shí)例方法方法名后面的括號中self指的是實(shí)例化對象本身 類方法:針對整個類而言的, 類方法中可以訪問靜態(tài)屬性 判斷那個方法要定義成那種類型:根據(jù)是否要操作實(shí)例屬性做判斷。如果方法要使用實(shí)例屬性,則是實(shí)例方法 實(shí)例方法中可以訪問實(shí)例屬性、靜態(tài)屬性 但是靜態(tài)方法中,不能訪問實(shí)例屬性,只能訪問靜態(tài)屬性 """ class Tiger():# 靜態(tài)屬性name = "老虎"# 體重(實(shí)例屬性)def __init__(self, w):# 屬性的定義個變量有點(diǎn)類似self.w = w# 喂食的方法def food(self, feed):# 判斷if feed == "meet":print("喂對了,動物的體重加10斤")# 訪問實(shí)例屬性self.w += 10else:print("喂錯了,動物的體重減10斤")self.w -= 10# 叫聲def roar(self):print(f"{Tiger.name}wow!!!wow!!!wow!!!")self.w -= 5# 靜態(tài)方法@staticmethoddef jump():print(f"{Tiger.name}都會跳躍&&&&&")# 類方法@classmethoddef a(cls):# 在類方法中訪問靜態(tài)屬性有兩種方法,1. 類名.靜態(tài)屬性 2.cls.靜態(tài)屬性# 之所以會有兩種寫法是因?yàn)?cls其實(shí)指的就是這個類# print(Tiger.name)print(cls.name)print("我是一個類方法") # 實(shí)例化產(chǎn)生對象 t1 = Tiger(200) # 通過實(shí)例化對象能不能訪問實(shí)例方法呢? t1.roar() t1.food("meet") # 訪問靜態(tài)方法:靜態(tài)方法有兩種訪問的方式 1. 實(shí)例化對象.靜態(tài)方法名 2.類名.靜態(tài)方法名 t1.jump() Tiger.jump() # 類方法的使用 : 1. 實(shí)例化對象.類方法名 2. 類名.類方法名 t1.a() Tiger.a()

4.對象的組合

# 房間類: # 對象的組合的時候,是將小對象當(dāng)做大對象的一個屬性傳入即可 class Tiger():# 靜態(tài)屬性name = "老虎"# 體重(實(shí)例屬性)def __init__(self, w):# 屬性的定義個變量有點(diǎn)類似self.w = w# 喂食的方法def food(self, feed):# 判斷if feed == "meet":print("喂對了,動物的體重加10斤")# 訪問實(shí)例屬性self.w += 10else:print("喂錯了,動物的體重減10斤")self.w -= 10# 叫聲def roar(self):print(f"{Tiger.name}wow!!!wow!!!wow!!!")self.w -= 5# 靜態(tài)方法@staticmethoddef jump():print(f"{Tiger.name}都會跳躍&&&&&") class Room():def __init__(self, num, animal):# 房間號self.num = num# 房間中的動物self.animal = animal # 實(shí)例化出來一只老虎 t1 = Tiger(200) # 實(shí)例化房間類 r1 = Room(1, t1) # 訪問動物的靜態(tài)屬性 print(r1.animal.name) # 訪問動物的實(shí)例屬性 print(r1.animal.w) # 調(diào)用老虎的相關(guān)方法 r1.animal.food("grass")

5.繼承

語法:

# 東北虎 class NeTiger(Tiger):def __init__(self,w):Tiger.__init__(self, w) # 對象的繼承 # 子類繼承父類, 一個父類可以有多個子類,一個子類可以繼承多個父類 # 子類繼承了父類就擁有了父類的一切屬性和方法 # 老虎 東北虎、華南虎、孟加拉虎、西伯利亞虎 class Tiger():# 靜態(tài)屬性name = "老虎"# 體重(實(shí)例屬性)def __init__(self, w):# 屬性的定義個變量有點(diǎn)類似self.w = w# 喂食的方法def food(self, feed):# 判斷if feed == "meet":print("喂對了,動物的體重加10斤")# 訪問實(shí)例屬性self.w += 10else:print("喂錯了,動物的體重減10斤")self.w -= 10# 叫聲def roar(self):print(f"{Tiger.name}wow!!!wow!!!wow!!!")self.w -= 5# 靜態(tài)方法@staticmethoddef jump():print(f"{Tiger.name}都會跳躍&&&&&")# 類方法@classmethoddef a(cls):# 在類方法中訪問靜態(tài)屬性有兩種方法,1. 類名.靜態(tài)屬性 2.cls.靜態(tài)屬性# 之所以會有兩種寫法是因?yàn)?cls其實(shí)指的就是這個類# print(Tiger.name)print(cls.name)print("我是一個類方法") # 東北虎 class NeTiger(Tiger):def __init__(self,w):Tiger.__init__(self, w) # 華南虎 class ScTiger(Tiger):def __init__(self, w):Tiger.__init__(self, w) # 實(shí)例化產(chǎn)生一只東北虎 # net1 = NeTiger(220) # # # 調(diào)用靜態(tài)屬性 # print(net1.name) # # 實(shí)例屬性 # print(net1.w) # # # 訪問靜態(tài)方法 # net1.jump() # # # 訪問實(shí)例方法 # net1.roar() set1 = ScTiger(200) print(set1.name) print(set1.w) set1.roar() set1.jump()

6.重定義

# 重定義:子類繼承父類之后,覺得父類的某個方法不能滿足自己,就需要對該方法進(jìn)行重新定義, # 重定義的時候,對于父類的方法的改變只僅限于該子類 class Tiger():# 靜態(tài)屬性name = "老虎"# 體重(實(shí)例屬性)def __init__(self, w):# 屬性的定義個變量有點(diǎn)類似self.w = w# 喂食的方法def food(self, feed):# 判斷if feed == "meet":print("喂對了,動物的體重加10斤")# 訪問實(shí)例屬性self.w += 10else:print("喂錯了,動物的體重減10斤")self.w -= 10# 叫聲def roar(self):print(f"{Tiger.name}wow!!!wow!!!wow!!!")self.w -= 5# 靜態(tài)方法@staticmethoddef jump():print(f"{Tiger.name}都會跳躍5米")# 類方法@classmethoddef a(cls):# 在類方法中訪問靜態(tài)屬性有兩種方法,1. 類名.靜態(tài)屬性 2.cls.靜態(tài)屬性# 之所以會有兩種寫法是因?yàn)?cls其實(shí)指的就是這個類# print(Tiger.name)print(cls.name)print("我是一個類方法") # 東北虎 class NeTiger(Tiger):name = "東北虎"def __init__(self, w):Tiger.__init__(self, w)@staticmethoddef jump():print(f"都會跳躍3米") # 華南虎 class ScTiger(Tiger):def __init__(self, w):Tiger.__init__(self, w) print("______________老虎_____________") t1 = Tiger(200) t1.jump() print(t1.name) print("_____________東北虎______________") n1 = NeTiger(100) n1.jump() print(n1.name) print("_____________華南虎______________") s1 = ScTiger(200) s1.jump() print(t1.name)

7.面向?qū)ο笕筇卣?/h2>
  • 繼承
  • 封裝
  • 多態(tài)
import random import time class Tiger():# 靜態(tài)屬性name = "老虎"# 體重(實(shí)例屬性)def __init__(self, w):# 屬性的定義個變量有點(diǎn)類似self.w = w# 喂食的方法def food(self, feed):# 判斷if feed == "meet":print("喂對了,動物的體重加10斤")# 訪問實(shí)例屬性self.w += 10else:print("喂錯了,動物的體重減10斤")self.w -= 10# 叫聲def roar(self):print(f"{Tiger.name}wow!!!wow!!!wow!!!")self.w -= 5 class Sheep():# 靜態(tài)屬性name = "羊"# 定義一個實(shí)例屬性def __init__(self, w):self.w = w# 實(shí)例方法def food(self, feed):if feed == "grass":print("喂對了,體重加10斤")self.w += 10else:print("喂錯了,體重減10斤")self.w -= 10def roar(self):print("miemiemiemiemiemie")self.w -= 5 class Room():def __init__(self, num, animal):# 房間號self.num = num# 房間中的動物self.animal = animal # 定義一個列表,用于保存房間對象 rooms = [] # 產(chǎn)生10個房間 for i in range(1, 11):# 隨機(jī)產(chǎn)生羊或者老虎flage = random.randint(0, 1)if flage == 0:a = Tiger(200)else:a = Sheep(100)# 實(shí)例化出來房間對象rooms.append(Room(i, a)) # 獲取游戲開始時間 start_time = time.time() print("游戲即將開始,將進(jìn)行倒計時:") while True:# 獲取游戲結(jié)束時間end_time = time.time()if end_time - start_time >= 20:print("游戲即將結(jié)束。。。。")# 輸出房間動物信息for r in rooms:print(f"第{r.num}號房間的動物是{r.animal.name},動物的體重是:{r.animal.w}")break# 隨機(jī)彈出一個房間r1 = random.choice(rooms)print(f"本次彈出的是{r1.num}號房間")# 選擇是否要敲門f = input("請選擇是否敲門:輸入y:")if f == "y":# 調(diào)用敲門的實(shí)例方法r1.animal.roar()# 不需要敲門,則可以直接喂食feed = input("請輸入食物:")# 調(diào)用喂食的方法r1.animal.food(feed)

總結(jié)

以上是生活随笔為你收集整理的python高级2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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