我正在学习属性,并编写此代码只是为了了解其工作原理:

class Car:
    def __init__(self):
        self.cities = 0
        self.time = 0
        self.efficiency = None
    @property
    def efficiency(self):
        print('Calculating efficiency')
        self.efficiency = self.cities / self.time
        return self.efficiency
    @efficiency.setter
    def efficiency(self,input):
        self.efficiency = input

当我尝试创建一个名为ejemplo的对象时(示例),我得到RecursionError: maximum recursion depth exceeded while calling a Python object错误时RecursionError: maximum recursion depth exceeded while calling a Python object 有人知道为什么吗?

这就是我创建ejemplo

ejemplo = Car()
print(ejemplo.cities)
print(ejemplo.time)
ejemplo.efficiency = 2

谢谢!

  ask by idmdvan translate from so

本文未有回复,本站智能推荐:

1回复

关于python中的属性类

这个问题已经在这里有了答案: 与属性混淆 1回答 在寻求有关python property的教程时,我看到了如下所示的python代码段: 作者说运行此代码片段将获得以下输出 ,因为在Celsius实例( c )的构造阶段,将调用类成员tempera
2回复

对setter和getter感到困惑[重复]

这个问题已经在这里有答案 : 去年关闭。 何时以及如何在python中使用内置函数property() (7个答案) 我是一个新的python程序员,最
2回复

通知父实例有关属性更改

我有这两个类: 我像这样使用它们: 我希望在修改Status的message属性时调用Buddy.status_updated 。 怎么做到这一点?
10回复

关于如何在python中使用属性功能的真实示例?

我对如何在Python中使用@property感兴趣。 我已经阅读了python文档和那里的例子,在我看来,它只是一个玩具代码: 我不知道从包装属性装饰器填充_x可以得到什么好处。 为什么不实施为: 我认为,属性功能在某些情况下可能会有用。 但当? 有人可以给我一些现实世
2回复

如何检查变量是否属性[重复]

这个问题在这里已有答案: 确定给定的类属性是否属性,Python对象 2应答 假设有一个定义了@property的类: 通常,要检查属性是否为函数,我可以使用来自inspect模块的isfunction 。 我如何查看property ? 似乎没有
2回复

Python3-有关同一属性的多个验证的澄清

我想对Python中的同一属性进行不同的验证,但是我不确定究竟是什么正确的方法。 例如,在下面的代码中,我想同时验证obj的名字和姓氏(以大写字母开头且长度超过2个符号)。 对于姓氏属性,我将所有支票合并在一个设置器中。 在这种情况下,我的代码不会同时捕获两个异常。 如果像在名字设置器中
9回复

如何创建类属性? [复制]

这个问题在这里已经有了答案: 在 classmethods 上使用 property() (16 个回答) 去年关闭。
2回复

Python中的@property速度开销[重复]

这个问题在这里已有答案: 使用@property与getters和setter 12个答案 我试图理解Python中@property装饰器的实用程序。 具体来说,我使用如下属性设置了一个类: 我还设置了一个没有提供相同功能的属性的类: 我创建了每