Python-属性错误: Point instance has no attribute 'x'

标签 python

所以我正在创建一个点类,我将用它来绘制形状。我首先创建我的点,如果 x 和 y 值不是 float ,则会引发错误:

def __init__(self, x, y):
    if not isinstance(x, float):
        raise Error ("Parameter \"x\" illegal.")        
        if not isinstance(y, float):
            raise Error ("Parameter \"y\" illegal.")
            self.x = x
            self.y = y

然后在这个方法中我将这些值转换为字符串形式的 int 。

def __str__(self):
    return int(round(self.x))

问题出在上述方法上,它给了我错误:

AttributeError: Point instance has no attribute 'x'

但是 x 应该存在,所以我不知道为什么它会给我这个错误。即使我使用 y 它也说 y 不存在。那么为什么这个方法会给我这个错误呢?

最佳答案

如果问题中的缩进实际上是正确的,则永远不会设置xy。代码指出:

    if not isinstance(y, float):
        raise Error ("Parameter \"y\" illegal.")
        self.x = x
        self.y = y

如果 if 的计算结果为 True,则会引发异常,并且永远不会到达这些行。如果它的计算结果为False,则整个 block 不会被执行。

你的意思可能是这样的:

if not isinstance(x, float):
    raise Error ("Parameter \"x\" illegal.")        
self.x = x
if not isinstance(y, float):
    raise Error ("Parameter \"y\" illegal.")
self.y = y

关于Python-属性错误: Point instance has no attribute 'x' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35824169/

相关文章:

python - 编辑主键作为枚举的记录时出现 Flask-admin 错误

python - 在 django View 中 fork 一个进程

python - aquamacs:在 C-c C-c 上切换窗口(python 模式)

python - 如何在使用 matplotlib 的 pyplot 绘制的图形上设置 x 轴标签?

python 错误 :ImportError: sys. meta_path is None, Python is likely shutdown

python - 运行时重载运算符

Python:如何导入一堆相似的名字?

python - 元音查找器,错误 : list index out of range

python - 使用 GOTURN 跟踪调用 traker.update 时,我需要帮助来修复错误

python - 模型编辑的 Django 内联链接