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