python的getattr()

本文详细解析了Python中getattr()函数的使用方法,包括其参数、返回值及与类的__getattr__方法的区别。通过实例展示了如何使用getattr()作为数据代理类的方法,以便灵活获取对象的属性。

函数原型:

getattr(object, name[, default])

name:str类型

default:如果不存在name属性,设置default则返回default,不设置返回AttributeError.

class A:
    name = "A"
    def get_name(self):
        print(self.name)

#这里的成员变量和成员函数都被称为属性 a
= A() na = getattr(a, "name") #输出:A 获得name属性 print(na) fun = getattr(a, "get_name") #输出:<bound method A.get_name of <__main__.A object at 0x0000000000A7A0F0>> 获得函数属性 print(fun)

getattr(a, 'bar2', 3) # 属性 bar2 不存在,但设置了默认值



与__getattr__的区别:
  • __getattr__是类的内置方法,当找不到某个属性时会调用该方法;找到就不会调用.
  • getattr与类无关.
  • 一个例子:作为data的代理类,可以以这种方式来使用data的属性.
  • class DataProxy(...):
    
        def __getattr__(self, item):
            return getattr(self.data, item)

转载于:https://www.cnblogs.com/Stephen-Qin/p/10289591.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值