av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

什么是python類屬性

瀏覽:2日期:2022-07-21 16:54:16

首先我們來看一下屬性的定義

屬性的定義:python中的屬性其實(shí)是普通方法的衍生。

操作類屬性有三種方法:

1.使用@property裝飾器操作類屬性。

2.使用類或?qū)嵗苯硬僮黝悓傩裕ɡ纾簅bj.name,obj.age=18,del obj.age)

3.使用python內(nèi)置函數(shù)操作屬性。

屬性存在的意義:

1、訪問屬性時(shí)可以制造出和訪問字段完全相同的假象,屬性由方法衍生而來,如果Python中沒有屬性,方法完全可以代替其功能。

2、定義屬性可以動(dòng)態(tài)獲取某個(gè)屬性值,屬性值由屬性對(duì)應(yīng)的方式實(shí)現(xiàn),應(yīng)用更靈活。

3、可以制定自己的屬性規(guī)則,用于防止他人隨意修改屬性值。

下面詳細(xì)介紹三種操作類屬性的方法:

1.使用@property裝飾器操作類屬性。

定義時(shí),在普通方法的基礎(chǔ)上添加@property裝飾器;屬性僅有一個(gè)self參數(shù),調(diào)用時(shí)無需括號(hào);

優(yōu)點(diǎn):

1) @property裝飾器可以實(shí)現(xiàn)其他語言所擁有的getter,setter和deleter的功能(例如實(shí)現(xiàn)獲取,設(shè)置,刪除隱藏的屬性)

2) 通過@property裝飾器可以對(duì)屬性的取值和賦值加以控制,提高代碼的穩(wěn)定性。

實(shí)例代碼1:

#encoding=utf-8 class Goods(): #新式類 @property def price(self): #查看屬性值 print (’@property ’) @price.setter #修改、設(shè)置屬性 def price(self, value): print (’@price.setter’ ) @price.deleter#刪除屬性 def price(self): print (’@price.deleter’) obj = Goods(50) obj.price# 自動(dòng)執(zhí)行 @property 修飾的 price 方法,并獲取方法的返回值 obj.price = 2000 # 自動(dòng)執(zhí)行 @price.setter 修飾的 price 方法,并將2000賦值給方法的參數(shù)del obj.price # 自動(dòng)執(zhí)行 @price.deleter 修飾的 price 方法 結(jié)果輸出:@property@price.setter@price.deleter

實(shí)例代碼2:通過@property裝飾器對(duì)屬性的取值和賦值加以控制

class Goods(object): def __init__(self): self.value=50 @property def price(self): # 查看屬性 return self.value @price.setter # 添加或設(shè)置屬性(屬性名.setter) def price(self, value): if value >=50 and value<=100: #對(duì)屬性的取值和賦值加以控制 self.value=value print (self.value) else: print ('請(qǐng)輸入一個(gè)50到100之間的數(shù)!') @price.deleter # 刪除屬性(屬性名.deleter) 注意:屬性一旦刪除,就無法設(shè)置和獲取 def price(self): del self.value print ('price is deleted!') obj = Goods()print (obj.price) # 自動(dòng)執(zhí)行 @property 修飾的 price 方法,并獲取方法的返回值obj.price=106 # 自動(dòng)執(zhí)行 @price.setter 修飾的 price 方法,并將106 賦值給方法del obj.price # 自動(dòng)執(zhí)行 @price.deleter 修飾的 price 方法結(jié)果輸出:50請(qǐng)輸入一個(gè)50到100之間的數(shù)!price is deleted!

實(shí)例擴(kuò)展:

class Dog(object): name = ’dog’ def init(self): self.age = 18 d1 = Dog()d2 = Dog()

這里有兩個(gè)實(shí)例 d1,d2 吧。

d1.name # 輸出 dogd2.name # 輸出 dogd1.name = ’abc’d1.name # 輸出 abcd2.name # 輸出 dogDog.name # 輸出 dog

原因是 d1.name 輸出 dog 不是因?yàn)檫@個(gè)實(shí)例共享了類屬性,而是因?yàn)檫@個(gè)實(shí)例沒有 dog 屬性,所以 python 查找了類屬性。但是一旦你修改了 d1.name 相當(dāng)于給 d1 實(shí)例綁定了 name 屬性之后,d1.name 就與類屬性無關(guān)了。既然這樣就談不上實(shí)例之間共享類屬性了,因?yàn)橹灰毁x值,就相當(dāng)于綁定了屬性,則上述 d1.name 的含義和 d2.name 的含義就不同了,它們的值也不同,很明顯它們的數(shù)據(jù)沒有共享。

到此這篇關(guān)于什么是python類屬性的文章就介紹到這了,更多相關(guān)python類屬性是什么內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 红桃av在线 | 日韩精品一区二区三区免费视频 | 玖玖在线观看 | 欧美成年人视频 | 日韩精品免费观看 | 男女激情视频网站 | 黄色一级视频免费看 | 精品日韩在线观看 | 在线免费观看日韩av | 一级片在线视频 | 天堂一区二区三区 | 久视频在线 | 久久精品免费看 | 免费一级黄色片 | 91小视频在线观看 | 国产一区二区三区免费视频 | 国产精品999 | 日韩在线观看免费 | 成人久久av | 国产又粗又猛又黄又爽无遮挡 | 一级片免费播放 | 四虎av| 欧美激情三区 | av网站免费在线观看 | 精品国产一二三区 | 成人9ⅰ免费影视网站 | 成人在线免费视频 | 色天堂影院 | 久久精品2 | 波多野结衣一级 | 欧美精品在线观看 | 免费毛片在线播放免费 | 亚洲成人中文字幕 | 亚洲精品911 | 国产一区中文字幕 | 国产成人亚洲精品自产在线 | 中文字幕婷婷 | 在线欧美 | 国产精品久久午夜夜伦鲁鲁 | 在线看av网址 | 久久亚洲免费视频 |