python — 面向对象【4】

python的自省

什么是自省

在计算机编程中,自省是指这种能力:检查某些事物以确定它是什么、它知道什么以及它能做什 么。自省向程序员提供了极大的灵活性和控制力

有时我们要访问某个变量或是方法时并不知道到底有没有这个变量或方法,所以就要做些判断。判断是否存在字符串对应的变量及方法

我们知道访问变量时是不能加引号的,否则会被当成字符串处理。如果要通过字符串找到对应的变 量,那该怎么办呢

自省的四种方法

getattr(obj, 'name'): 获取成员

根据字符串去获取obj对象里的对应的方法的内存地址

hasattr(obj, 'name'): 检查是否含有成员

判断一个对象obj里是否有对应的name_str字符串的方法 •

import sc  #同文件夹下创建的一个.py文件
#python的自省
#xx.xx的形式都能自省出来
print(hasattr(sc,'a'))   #判断sc里有没有a属性,为True表示有属性,为False表示没有,这里的sc是个模块
print(hasattr(sc,'b'))
print(getattr(sc,'a'))    #获取sc里面的属性a
print(setattr(sc,'b','scbbbb'))    #设置sc里面的属性,b为scbbbb,返回值为None
print(getattr(sc,'b'))
print(delattr(sc,'b'))    #删除属性,返回值为None
print(hasattr(sc,'b'))
print(sc.a)
​
#接受用户从键盘的输入,可以无
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值