python反射

什么是反射

发射就是通过字符串的形式导入模块,通过字符串的形式去模块中寻找指定的函数并执行

4个内置函数

getattr(strObject, attr [,default])

返回指定字符串strObject的属性或方法'attr',如果有属性则返回该属性的值,
如果有方法则返回该方法的内存地址,如果都没有报错。
如果指定了默认值且都没有,则返回该默认值。

hasattr(strObject, attr)

判断指定字符串strObject对象是否有该属性或方法'attr',返回True/False

setattr(strObject, attr, value)

为指定字符串strObject对象设置属性attr的值,如果对象已有尬属性的值则修改原值,
如果没有该属性则新增属性并赋值

delattr(strObject, attr)

删除指定字符串strObject对象的属性attr,如果没有该属性则报错。

class People:
    def __init__(self, name, age):
        self.name = name
        self.age = age


p = People("尘世风", 18)
print(hasattr(p, "name"))  # True
print(getattr(p, "age"))  # 18
print(getattr(p, "hobby", None))  # 获取不到属性,返回设定值
setattr(p, "hobby", "Python")  # 无则增,有则改
print(getattr(p, "hobby", None))  # Python
delattr(p, "hobby")
print(getattr(p, "hobby", None))  # None

# 类也可以说是对象
# print(hasattr(类,'类的属性/方法'))
print(hasattr(list,'append'))   # True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值