NPT 中文站
  • 首页
  • Golden Token中文网
  • Golden Token中文网

    python中的内置函数getattr()介绍及示例

    发布日期:2025-01-03 17:24    点击次数:158

    在python的官方文档中:getattr()的解释如下: 根据属性名称返回对象值。如果“name”是对对象属性的名称,则返回对应属性的值。  这段代码执行的结果是: 第一个函数tryattribute0()非常好理解,就如同定义里说的一样。第二个函数tryattribute1()就有一点费解了。其实原理并不复杂,我们看到fun的type是 instancemethod,这里你可以认为:对于函数,getattr()的返回值是一个指针,指针赋值给接受它的变量,以后call这个变量就等于调用变量指向的函数。 原理我们知道了,那getattr的作用是什么呢? 你熟悉java或者c#中的反射么?反射的一个重要作用就是延迟加载,这样可以解耦,这样可以让系统运行的更有效率。作为动态语言,python显然在这方面要更加强大, getattr()就是实现python反射的一块积木,结合其它方法如setattr(),dir() 等,我们可以做出很多有趣的事情。 我们看以下场景: 1.我需要在一个类中动态添加其它类中有的方法: 我们只需要: 这样a就可以调用B中的'非私有'方法啦。

    Powered by NPT 中文站 @2013-2022 RSS地图 HTML地图

    Copyright Powered by365站群 © 2013-2024