Python内建函数之getattribute

getattribute为python内建属性,其作用为,当类中属性被访问时,会自动调用__getattribute__方法。常用于查看权限、打印log日志等。

例1:


输出结果:


当去访问name属性时,不会直接打印,而会自动调用__getattribute__方法,把self.name的属性传给__getattribute__中,进过一些列操作后输出“---自动调用---”,由于此时没有任何return,所以此时返回一个None。

例2:


输出结果:


此时访问name属性,自动调用__getattribute__方法,并且由形参item接收了self.name的值,程序会打印"---自动调用---"并且通return返回item,则输出结果中出现了“老王”


常用案例:

例3:

class TestGetattribute(object):
    def __init__(self,temp_name):
        self.name = temp_name
        self.age  = 18
    def __getattribute__(self, *args,**kwargs):
        if args[0] == "name":
            return  "不让访问name属性"
        elif args[0] == "age":
            print("访问属性成功")
            return object.__getattribute__(self,*args,**kwargs)

code1 = TestGetattribute("test")
print(code1.name)
print("----------------")
print(code1.age)

输出结果:

不让访问name属性
----------------
访问属性成功
18

当访问其中的name属性时,自动调用__getattribute__方法,判读访问的属性是否允许访问,并返回不同的值。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值