国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

liangdas / 2501人閱讀

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

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

相關(guān)文章

  • python--面向?qū)ο筮M階

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

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

    摘要:單元素元祖這是整數(shù)這才是元祖也許這兩行,你們當(dāng)時疑惑過,并且現(xiàn)在也都知道了,當(dāng)然重點并不在這里。。雖然我水平很垃圾,但是我知道匿名函數(shù)有一種執(zhí)行方式叫做自執(zhí)行??窗桑@就是版的匿名函數(shù)自執(zhí)行方法。 單元素元祖: a = (1) # 這是整數(shù)1 a = (1,) # 這才是元祖 也許這兩行,你們當(dāng)時疑惑過,并且現(xiàn)在也都知道了,當(dāng)然重點并不在這里。。 我無聊的時候想過,為什么單...

    UnixAgain 評論0 收藏0
  • Python動態(tài)屬性和特性

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

    scola666 評論0 收藏0
  • Werkzeug Local與LocalProxy等淺析

    摘要:線程局部變量,也就是每個線程的私有變量,具有線程隔離性。按我們正常的理解,應(yīng)該是每一個請求對應(yīng)一個處理線程。在中,除了線程之外,還有個叫協(xié)程的東東,這里不提進程。配合會確保不管是協(xié)程還是線程,只要當(dāng)前請求處理完成之后清除中對應(yīng)的內(nèi)容。 首先貼出官方文檔地址:http://werkzeug.pocoo.org/doc...幾個local?threading.localwerkzeug.l...

    The question 評論0 收藏0
  • python:改良廖雪峰使用元類自定義ORM

    摘要:概要本文僅僅是對廖雪峰老師的使用元類自定義進行改進,并不是要創(chuàng)建一個框架編寫,刪除了參數(shù),參數(shù)全部為定義字段類型相關(guān)參數(shù),和眾多有名的相同,使用反射,方便字段的擴展,如本例使用就是反射的應(yīng)用字段類型字段長度字段默認(rèn)值,如果想擴展可以填寫更多 概要 本文僅僅是對廖雪峰老師的使用元類自定義ORM進行改進,并不是要創(chuàng)建一個ORM框架 編寫field class Field(object): ...

    張遷 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<