知行编程网知行编程网  2022-12-19 19:00 知行编程网 隐藏边栏  2 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python动态存取属性如何实现的相关知识,希望可以帮到处于编程学习途中的小伙伴

python动态访问属性的实现方法

私有属性的读取和保护是通过装饰属性实现的,那么在VectorN中,如果我们需要通过vectorN.x\vectorN.y等读取前几个元素,是否也可以采用类似的方法呢?

答案当然是肯定的,但是我们可以用两个或三个元素来做到这一点。如果有多个元素,我们应该一个一个地创建方法,并用属性来装饰它们。 Python 提供了一个神奇的方法__getattr___ 来处理这些问题。


__getattr__说明

1. 当 Python 解释器试图获取实例属性时,没有实例字典可以在其中查找类属性。

2.如果没有类属性,可以在父类中查找。如果没有,可以通过_getattr__函数获取。


动态存取属性实例

    def __getattr__(self, name):
        attrStr = "xyzt"
        if len(name) == 1:
            index = attrStr.find(name)
            if 0 <= index < len(self):
                return self.contents[index]
        raise IndexError("list index out of range")


本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享