最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
python的property怎么使用

本篇內(nèi)容介紹了“python的property怎么使用”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于網(wǎng)站制作、成都網(wǎng)站設計、稱多網(wǎng)絡推廣、成都小程序開發(fā)、稱多網(wǎng)絡營銷、稱多企業(yè)策劃、稱多品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供稱多建站搭建服務,24小時服務熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

一、聯(lián)動

案例

class Goods:def __init__(self, name, price, count=1):self.name = name  # 商品名稱self.price = price  # 商品單價self.count = float(count)  # 商品數(shù)量self.total = price*count

    
apple = Goods('蘋果', 5, 2)print(apple.total)apple.count = 3print(apple.total)out:1010

在上述案例中建了一個Goods(商品)類,它有name(商品名稱)、price(商品單價)、count(商品數(shù)量)。它內(nèi)部還有個toatl(商品總價)屬性,這個屬性是根據(jù)單價乘數(shù)量計算得來的。

接下來建了一個實例:apple,名稱是蘋果,單價是5,數(shù)量是2?,F(xiàn)在打印apple.total顯示是10,結(jié)果正常,可是當我們把數(shù)量改成3以后再打印apple.total結(jié)果仍然是10,數(shù)據(jù)沒有產(chǎn)生聯(lián)動!編程的時候一定要避免這樣的情況發(fā)生。

正解

class Goods:def __init__(self, name, price, count=1):self.name = name  # 商品名稱self.price = price  # 商品單價self.count = float(count)  # 商品數(shù)量@propertydef total(self):  # 商品總價return self.price*self.count


apple = Goods('蘋果', 5, 2)print(apple.total)apple.count = 3print(apple.total)

在這段代碼中,通過將total方法偽裝成屬性的方式,我們可以獲得聯(lián)動的total屬性。

好了,請記住使用property的第一條優(yōu)點——數(shù)據(jù)聯(lián)動。

二、健壯

繼續(xù)上述的案例講健壯,假設商品數(shù)量是售貨員手動輸入的,若遇到售貨員不小心將數(shù)量輸成了’a’會發(fā)生什么呢?

class Goods:def __init__(self, name, price, count=1):self.name = name  # 商品名稱self.price = price  # 商品單價self.count = float(count)  # 商品數(shù)量@propertydef total(self):  # 商品總價return self.price*self.count


apple = Goods('蘋果', 5, 'a')print(apple.total)out:ValueError: could not convert string to float: 'a'

這下程序直接報錯,異常退出了!當然你可以指責售貨員的不小心,但同時也不能否認自己編寫的代碼容錯率低,也就是不健壯,動不動就報錯!合格的程序員編寫代碼時必須考慮到各種情況,提高程序的健壯性。下面我們針對上述的情況更正代碼:

class Goods:def __init__(self, name, price, count=1):self.name = name  # 商品名稱self.price = price  # 商品單價self.__count = count  # 商品數(shù)量@propertydef count(self):try:self.__count = float(self.__count)except ValueError:print('輸入數(shù)量有誤,數(shù)值自動修正為1.0,請注意核對!')self.__count = 1.0return self.__count
    
    @count.setterdef count(self, n):try:n = float(n)except ValueError:print('輸入數(shù)量有誤,數(shù)值自動修正為1.0,請注意核對!')n = 1.0self.__count = n
   
    @propertydef total(self):  # 商品總價return self.price*self.count


apple = Goods('蘋果', 5, 'a')print(apple.total)apple.count = 'bb'print(apple.total)out:輸入數(shù)量有誤,數(shù)值自動修正為1.0,請注意核對!5.0輸入數(shù)量有誤,數(shù)值自動修正為1.0,請注意核對!5.0

注意@函數(shù)名.setter的寫法,這個函數(shù)名要和前一個@property下一行的函數(shù)名要一致。

三、安全

繼續(xù)上述的代碼講安全,數(shù)據(jù)安全有一項重要的內(nèi)容就是確保數(shù)據(jù)值在合理范圍區(qū)間,如果不對重要數(shù)據(jù)進行值范圍校驗就會發(fā)生重大差錯。假設上述案例中某營業(yè)員將銷售數(shù)量改成負數(shù)會發(fā)生什么?顯而易見的會發(fā)生賬目差錯,所以我們要對count數(shù)值進行校驗,不能接受負數(shù)。

因此必須修改@count.setter部分:

    @count.setterdef count(self, n):try:n = float(n)if n < 0:print('輸入數(shù)量有誤,數(shù)值自動修正為0,請注意核對!')n = 0except ValueError:print('輸入數(shù)量有誤,數(shù)值自動修正為1.0,請注意核對!')n = 1.0self.__count = n

最后補充一下property的deleter部分,它可以在調(diào)用del apple.count時刪除__count屬性:

    @count.deleterdef count(self):del self.__count

“python的property怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!


網(wǎng)頁名稱:python的property怎么使用
網(wǎng)頁地址:http://fisionsoft.com.cn/article/pgdocd.html