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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中面向对象空间时间_python基础学习Day15 面向对象、类名称空间、对象名称空间 (2)...

發布時間:2023/12/1 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中面向对象空间时间_python基础学习Day15 面向对象、类名称空间、对象名称空间 (2)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、類

先看一段代碼:

classPerson:

animal= '高級動物'walk_way= '直立行走' # 靜態屬性,靜態變量,靜態字段language= '語言'

def __init__(self,name,age,work): # 函數 動態屬性,方法#print(self)

self.name =name

self.age=age

self.work=workdefeat(self):print('吃吃')defwork(self):print('工作')

obj= Person('alex',25,'it')

class:? 類? ?Person:類名

類:具有相同屬性或者功能的一類實物

對象:對象是類的具體體現。

# 結構上理解:面向對象分兩個部分,靜態屬性? 動態屬性 (屬性、方法)

特點:

(1)函數封裝一個功能,而面向對象封裝多個相關的功能

(2)面向對象是抽象的,它是一種思想,站在上帝的角度去理解他

(3)程序可擴展,對象都是一個個獨立的。耦合性,差異性。

類名:

(1)查看類中的所有屬性及方法:__dict__

print(Person.__dict__)

print(Person.__dict__['animal'])? ? # 單獨查看某個屬性

# 工作中,一般只會用__dict__查看類中的所有屬性,不進行其他操作

(2)查看(增刪改)類中某個,某些屬性,用萬能的點'.'

# print(Person.animal) # 查

# Person.name = 'alex' # 增 改

# print(Person.name)

# del Person.walk_way # 刪

# print(Person.__dict__)

(3) 函數的操作方法。一般不通過類名來操作

Person.work(666) # 可以操作函數

二、對象

先看代碼:

classPerson:

animal= '高級動物'walk_way= '直立行走'language= '語言'

def __init__(self,name,age,work):#print(self)

self.name =name

self.age=age

self.work=workdefeat(self):print('吃吃')defwork(self):print('工作')

obj= Person('alex',25,'it') #這是一個實例化過程,實例化一個內存空間(即對象空間)#print(obj)#print(obj.age)#print(obj.work)#print(obj.name)

obj.hobby = 'tesla'

print(obj.__dict__)

obj.name= 'Chris'

print(obj.__dict__)delobj.workprint(obj.__dict__)

obj.animal= '低等動物'

print(obj.__dict__) #給對象添加了animal的屬性

print(Person.__dict__)print(obj.animal)print(Person.animal)#print(obj)

obj.eat()

# 對象

# 對象操作對象空間

#查看所有屬性__dict__

# print(obj.__dict__)? ? #

# 對對象的某個屬性? 增刪改查? 萬能的點

obj.hobby = 'tesla' # 增

obj.name = 'Chris'  # 改

del obj.work      # 刪

print(obj.name)    # 查

類執行的過程圖

三、組合

先看代碼:

classGamerole:def __init__(self,nickname,ad,hp):

self.nickname=nickname

self.ad=ad

self.hp=hpdef equip_weapon(self, w): #給人物封裝了一個武器屬性,這個屬性值是Weapon的一個對象

self.equip_weapon = w #組合

classWeapon:def __init__(self,name,ad):

self.name=name

self.ad=addeffight(self,role1,role2): # 此時的self為武器的內存地址

role2.hp= role2.hp -self.ad - role1.ad # 此時 role1、role2分別為p1、p2print('%s 用 %s 攻擊了%s, %s掉了%s血,還剩%s血'%(role1.nickname,self.name,role2.nickname,role2.nickname,self.ad + role.ad,role2.hp))

p1= Gamerole('蓋倫',20,500)

p2= Gamerole('劍豪',100,200)

w1= Weapon('大寶劍',30)

w2= Weapon('武士刀',80)

p2.equip_weapon(w2)

p2.equip_weapon.fight(p2,p1)

結果為:

劍豪 用 武士刀 攻擊了蓋倫, 蓋倫掉了180血,還剩320血

插入解釋圖片:

總結

以上是生活随笔為你收集整理的python中面向对象空间时间_python基础学习Day15 面向对象、类名称空间、对象名称空间 (2)...的全部內容,希望文章能夠幫你解決所遇到的問題。

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