python自省

python自省

在计算机编程中,自省是指:检查某些事物以确定它是什么、它知道什么,它能做什么

1.hasattr(obj, attr):
    用于检查obj是否有一个名为attr的属性,返回一个布尔值。
2.getattr(obj, attr):
    返回obj中名为attr的属性的值。getattr(obj, attr)相当于obj.attr
3.setattr(obj, attr, val):
    将给obj的名为attr的属性赋值为val。例如如果attr为’name’,则相当于obj.name= val
4.dir([object])     #参数说明:object -- 对象、变量、类型
    调用这个方法将返回参数obj的属性和方法列表,obj的默认值是当前的模块对象。

当你想要对某个对象的属性、方法,进行操作但是记不清它的名字,甚至都不确定它是否存在的时候,python提供的自省功能就派上用场了。
测试代码如下:

# class MyClass:
#     def __init__(self, name):
#         self.name = name
#
#     def instance_method(self):
#         print(self, '调用了方法')
#
# obj = MyClass('Jack')
#
# if hasattr(obj,'name'):
#     setattr(obj,'name','jack')
#     print(obj.name)
#     print(getattr(obj,'name'))
#
#
# if hasattr(obj,'instance_method'):
#     getattr(obj,'instance_method')()
#     obj.instance_method()
#
# print(dir(obj))   #可以查看对象内的所有属性和方法
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值