1. hasattr(object, name)
判斷object里是否有name屬性,有就返回True,沒(méi)有則返回False。
class MyClass(object): name = "jack" age = "22" obj = MyClass() print(hasattr(obj, "name")) # True print(hasattr(MyClass, "age")) # True print(hasattr(obj, "gender")) # False2. getattr(object, name, [default])
用來(lái)獲取object的屬性或方法,有就打印出來(lái). 沒(méi)有就打印默認(rèn)值,若是沒(méi)有設(shè)置默認(rèn)值則報(bào)錯(cuò)
class MyClass(object): name = "jack" age = "22" def func(self): return "hello world!!!" obj = MyClass() print(getattr(MyClass, "name")) # jack print(getattr(obj, "age")) # 22 print(getattr(MyClass, "func")) #3. setattr(object, key, value)print(getattr(obj, "func")) # > # print(getattr(MyClass, "func1")) # 沒(méi)有設(shè)置默認(rèn)值,找不到方法會(huì)報(bào)錯(cuò): AttributeError: type object "MyClass" has no attribute "func1" print(getattr(MyClass, "func1", None)) # 設(shè)置了默認(rèn)值None,找不到就會(huì)返回默認(rèn)值: None print(getattr(MyClass, "func")("self")) # hello world!!! print(getattr(obj, "func")()) # hello world!!!
用來(lái)對(duì)object的屬性key賦值value. 若是key存在,則更新value的值. 若key不存在,則先創(chuàng)建屬性key再對(duì)其賦值value.
class MyClass(object): name = "jack" age = "22" obj = MyClass() setattr(MyClass, "name", "tom") print(getattr(MyClass, "name")) # tom setattr(obj, "age", 28) print(getattr(obj, "age")) # 28 setattr(MyClass, "gender", "male") print(getattr(MyClass, "gender")) # male print(getattr(obj, "gender")) # male setattr(obj, "hobby", "skating") print(obj, "hobby") # <__main__.MyClass object at 0x00000209F5070630> hobby print(MyClass, "hobby") #hobby
三個(gè)方法一起用:
class MyClass(object): name = "jack" age = "22" # 判斷Myclass是否有g(shù)ender屬性,有則打印,沒(méi)有則添加 def if_attr(gender="male"): if hasattr(MyClass, "gender"): return getattr(MyClass, "gender") return setattr(MyClass, "gender", gender) if_attr(gender="female") print(getattr(MyClass, "gender")) # female
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/42874.html
摘要:它首先被程序語(yǔ)言的設(shè)計(jì)領(lǐng)域所采用并在和面向?qū)ο蠓矫嫒〉昧顺煽?jī)。面向?qū)ο笾械姆瓷渫ㄟ^(guò)字符串的形式操作對(duì)象相關(guān)的屬性。注構(gòu)造方法的執(zhí)行是由創(chuàng)建對(duì)象觸發(fā)的,即對(duì)象類(lèi)名而對(duì)于方法的執(zhí)行是由對(duì)象后加括號(hào)觸發(fā)的,即對(duì)象或者類(lèi)執(zhí)行執(zhí)行邏輯題 isinstance和issubclass 1.isinstance(obj,cls)檢查是否obj是否是類(lèi) cls 的對(duì)象 #!/usr/bin/env py...
摘要:?jiǎn)卧卦孢@是整數(shù)這才是元祖也許這兩行,你們當(dāng)時(shí)疑惑過(guò),并且現(xiàn)在也都知道了,當(dāng)然重點(diǎn)并不在這里。。雖然我水平很垃圾,但是我知道匿名函數(shù)有一種執(zhí)行方式叫做自執(zhí)行。看吧,這就是版的匿名函數(shù)自執(zhí)行方法。 單元素元祖: a = (1) # 這是整數(shù)1 a = (1,) # 這才是元祖 也許這兩行,你們當(dāng)時(shí)疑惑過(guò),并且現(xiàn)在也都知道了,當(dāng)然重點(diǎn)并不在這里。。 我無(wú)聊的時(shí)候想過(guò),為什么單...
摘要:一利用動(dòng)態(tài)屬性處理數(shù)據(jù)源屬性在中,數(shù)據(jù)的屬性和處理數(shù)據(jù)的方法統(tǒng)稱(chēng)屬性。處理無(wú)效屬性名在中,由于關(guān)鍵字被保留,名稱(chēng)為關(guān)鍵字的屬性是無(wú)效的。內(nèi)置函數(shù)列出對(duì)象的大多數(shù)屬性。點(diǎn)號(hào)和內(nèi)置函數(shù)會(huì)觸發(fā)這個(gè)方法。 導(dǎo)語(yǔ):本文章記錄了本人在學(xué)習(xí)Python基礎(chǔ)之元編程篇的重點(diǎn)知識(shí)及個(gè)人心得,打算入門(mén)Python的朋友們可以來(lái)一起學(xué)習(xí)并交流。 本文重點(diǎn): 1、了解如何利用動(dòng)態(tài)屬性處理數(shù)據(jù);2、掌握Pyth...
摘要:線程局部變量,也就是每個(gè)線程的私有變量,具有線程隔離性。按我們正常的理解,應(yīng)該是每一個(gè)請(qǐng)求對(duì)應(yīng)一個(gè)處理線程。在中,除了線程之外,還有個(gè)叫協(xié)程的東東,這里不提進(jìn)程。配合會(huì)確保不管是協(xié)程還是線程,只要當(dāng)前請(qǐng)求處理完成之后清除中對(duì)應(yīng)的內(nèi)容。 首先貼出官方文檔地址:http://werkzeug.pocoo.org/doc...幾個(gè)local?threading.localwerkzeug.l...
摘要:概要本文僅僅是對(duì)廖雪峰老師的使用元類(lèi)自定義進(jìn)行改進(jìn),并不是要?jiǎng)?chuàng)建一個(gè)框架編寫(xiě),刪除了參數(shù),參數(shù)全部為定義字段類(lèi)型相關(guān)參數(shù),和眾多有名的相同,使用反射,方便字段的擴(kuò)展,如本例使用就是反射的應(yīng)用字段類(lèi)型字段長(zhǎng)度字段默認(rèn)值,如果想擴(kuò)展可以填寫(xiě)更多 概要 本文僅僅是對(duì)廖雪峰老師的使用元類(lèi)自定義ORM進(jìn)行改進(jìn),并不是要?jiǎng)?chuàng)建一個(gè)ORM框架 編寫(xiě)field class Field(object): ...
閱讀 3355·2021-10-13 09:39
閱讀 2091·2021-09-27 13:36
閱讀 3145·2021-09-22 16:02
閱讀 2654·2021-09-10 10:51
閱讀 1647·2019-08-29 17:15
閱讀 1588·2019-08-29 16:14
閱讀 3649·2019-08-26 11:55
閱讀 2616·2019-08-26 11:50