python 常用API

1.        在程序开发中,常常会遇到这样的需求:在执行对象中的某个方法,或者在调用对象的某个变量,但是由于一些原因,我们无法确定或者并不知道该方法或者变量是否存在,这时我们需要一个特殊的方法或者机制来访问或操作该未知的方法或变量,这种机制就被称之为反射。 反射机制:反射就是通过字符串的形式,导入模块;通过字符串的形式,去模块中寻找指定函数,对其进行操作。也就是利用字符串的形式去对象(模块)中操作(查找or获取or删除or添加)成员,一种基于字符串的事件驱动。

下面先介绍发射机制中的常用的几个函数:

· getattr()  函数用于返回一个对象的属性值

获取对象object的属性或者方法,存在则返回其属性,不存在则返回默认值,默认值可选。

注意:如果获取的是方法,存在则返回对象中方法的内存地址,若想运行则需通过"()"方法.
 


# getattr 语法
getattr(object,name[,default])
 
#参数
# · object -- 对象
# · name   -- 字符串,对象属性
# · default-- 默认返回值,如果不提供该参数,在没有对应属性时,将触发AttrbuteError.
 
# 返回值 :返回对象属性值 
class test():
    name="david"
    def run(self):
        return "Hello David"
t=test()        # t 为一个test对象
getattr(t, "name") #获取name属性
getattr(t, "run")  #获取run方法,存在就打印出方法的内存地址。
<bound method test.run of <__main__.test instance at 0x0269C878>>
getattr(t, "run")()  #获取run方法,后面加括号可以将这个方法运行。
'Hello David'
getattr(t, "david")  #获取一个不存在的属性。
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: test instance has no attribute 'david'
getattr(t, "david","18")  #若属性不存在,返回一个默认值。
'18'
· hasattr() 函数用于判断对象是够包含对应的属性

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值