反射的基本使用

classFoo(object):

def__init__(self,name,age):

self.name = name

self.age = age

defshow(self):

return"%s-%s"%(self.name,self.age)

obj = Foo("sunziheng",20)

f = obj.show()

print(f)

func =getattr(obj,"show")

print(func())

v =getattr(obj,"name")

print(v)

print(hash(obj))

print(hasattr(obj,"sunziheng"))# False 判斷這個對象里面有沒有這個屬性 有返回 Ture 沒有返回False

print(hasattr(obj,"age"))#True

setattr(obj,'k1','v1')# 給對象設置一個 k1 = v1 的屬性

print(obj.k1)

#print(obj.v1) #AttributeError: 'Foo' object has no attribute 'v1'

# delattr(obj,"name") # 刪除對象屬性

# print(obj.name)

a =20

obj.c = a#Python 可以直接給對象設置屬性

print(obj.c)

print(hasattr(obj,"c"))

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 20- 枚舉,枚舉原始值,枚舉相關值,switch提取枚舉關聯值 Swift枚舉: Swift中的枚舉比OC中的枚...
    iOS_恒仔閱讀 2,314評論 1 6
  • 基礎1.r''表示''內部的字符串默認不轉義2.'''...'''表示多行內容3. 布爾值:True、False(...
    neo已經被使用閱讀 1,732評論 0 5
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語閱讀 3,865評論 0 6
  • 關于親情 昨天看了<<一切都好>>,今天老爸打電話問我他們想買個豆漿機,要不要等我回去買,我說我回去陪你們去買...
    藍依夢閱讀 313評論 0 2