导语:
本文主要介绍了关于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电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 什么是python内置作用域12/09
- ♥ 如何使用 python turtle 库绘制三角形?09/05
- ♥ python canvas画布介绍09/17
- ♥ 如何在python中输入多行08/20
- ♥ python中的终端是什么?08/25
- ♥ 庆祝胖五发射成功,让我们用Python来发射火箭吧!12/19
内容反馈