亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Python的hasattr(),getattr(),setattr()

liangdas / 2563人閱讀

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"))  # False
2. 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"))  # 
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!!!
3. setattr(object, key, value)

用來(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

相關(guān)文章

  • python--面向?qū)ο筮M(jìn)階

    摘要:它首先被程序語(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...

    Profeel 評(píng)論0 收藏0
  • 經(jīng)驗(yàn)拾憶(純手工)=> Python好用深度技能工具介紹

    摘要:?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ò),為什么單...

    UnixAgain 評(píng)論0 收藏0
  • Python動(dòng)態(tài)屬性和特性

    摘要:一利用動(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...

    scola666 評(píng)論0 收藏0
  • Werkzeug Local與LocalProxy等淺析

    摘要:線程局部變量,也就是每個(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...

    The question 評(píng)論0 收藏0
  • python:改良廖雪峰使用元類(lèi)自定義ORM

    摘要:概要本文僅僅是對(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): ...

    張遷 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<