使用Dataclass并获取AttributeError:“int”对象没有属性“x”

2024-09-29 20:28:33 发布

您现在位置:Python中文网/ 问答频道 /正文

正在尝试code from。在

from dataclasses import dataclass, field, InitVar

@dataclass
class XYPoint:
    last_serial_no = 0
    x: float
    y: float = 0
    skip: InitVar[int] = 1
    serial_no: int = field(init=False)

    def __post_init__(self, skip):
        self.serial_no = self.last_serial_no + self.skip
        self.__class__.last_serial_no = self.serial_no

    def __add__(self, other):
        new = XYPoint(self.x, self. y)
        new.x += other.x
        new.y += other.y

以此作为测试示例:

^{pr2}$

运行代码时,我收到错误:AttributeError:“int”对象没有属性“x” 尝试将return添加到def;相同的错误。在


Tags: nofromselffieldnewdefserialclass
1条回答
网友
1楼 · 发布于 2024-09-29 20:28:33

您的示例没有尝试添加XYPoint的两个实例,而是尝试使用XYPoint__add__方法,在本例中,XYPoint不是{},它是一个int

new = XYPoint(32.x, 32.y)

你可能会猜到这是个错误。在

也许这正是你想要做的。在

^{pr2}$

相关问题 更多 >

    热门问题