python如何對實例屬性進行類型檢查
本文實例為大家分享了python對實例屬性進行類型檢查的具體代碼,供大家參考,具體內(nèi)容如下
案例:
在某項目中,我們實現(xiàn)了一些類,并希望能像靜態(tài)語言那樣對他們的實例屬性進行類型檢查
p = Person()
p.name = ‘xi_xi' # 必須是str
p.age = 18 # 必須是int
p.height = 1.75 # 必須是float
需求:
可以對實例變量名指定類型
賦予不正確類型拋出異常
#!/usr/bin/python3 class Attr(object): """ 對Person類中屬性進行類型檢查 """ # 傳入字段名字 + 指定字段類型 def __init__(self, name, style): self.name = name self.style = style # 取值 def __get__(self, instance, owner): return instance.__dict__[self.name] # 設值 def __set__(self, instance, value): # 判斷參數(shù)類型是否滿足條件 if isinstance(value, self.style): instance.__dict__[self.name] = value else: raise TypeError('need type: %s' % self.style) # 刪除值 def __delete__(self, instance): del instance.__dict__[self.name] class Person(object): name = Attr('name', str) age = Attr('age', int) height = Attr('height', float) if __name__ == '__main__': p = Person() p.name = 'xi_xi' # p.name = 55 p.age = 18 p.height = 1.75 print(p.name, p.age, p.height) del p.height
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
python 實現(xiàn)list或string按指定分段
今天小編就為大家分享一篇python 實現(xiàn)list或string按指定分段,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12用python打開攝像頭并把圖像傳回qq郵箱(Pyinstaller打包)
這篇文章主要介紹了用python打開攝像頭并把圖像傳回qq郵箱,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05Python如何生成隨機數(shù)及random隨機數(shù)模塊應用
這篇文章主要介紹了Python如何生成隨機數(shù)及random隨機數(shù)模塊應用,首先我們要知道在python中用于生成隨機數(shù)的模塊是random,在使用前需要import。由此展開內(nèi)容介紹,需要的小伙伴可以參考一下2022-06-06Python使用lxml模塊和Requests模塊抓取HTML頁面的教程
用Pyhton自帶的urllib或urllib2模塊抓取網(wǎng)頁或許有些陳詞濫調(diào)了,今天我們就來玩兒些新鮮的,來看Python使用lxml模塊和Requests模塊抓取HTML頁面的教程:2016-05-05python實現(xiàn)全排列代碼(回溯、深度優(yōu)先搜索)
今天小編就為大家分享一篇python實現(xiàn)全排列代碼(回溯、深度優(yōu)先搜索),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python計算庫numpy進行方差/標準方差/樣本標準方差/協(xié)方差的計算
今天小編就為大家分享一篇關于Python計算庫numpy進行方差/標準方差/樣本標準方差/協(xié)方差的計算,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12