反射的基本使用

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"))

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 20- 枚举,枚举原始值,枚举相关值,switch提取枚举关联值 Swift枚举: Swift中的枚举比OC中的枚...
    iOS_恒仔阅读 2,474评论 1 6
  • 基础1.r''表示''内部的字符串默认不转义2.'''...'''表示多行内容3. 布尔值:True、False(...
    neo已经被使用阅读 1,918评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,073评论 19 139
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 4,161评论 0 6
  • 关于亲情 昨天看了<<一切都好>>,今天老爸打电话问我他们想买个豆浆机,要不要等我回去买,我说我回去陪你们去买...
    蓝依梦阅读 331评论 0 2

友情链接更多精彩内容