【问题标题】:Get Attribute Error while calling a attribute of specific class in another class in python在python的另一个类中调用特定类的属性时获取属性错误
【发布时间】:2022-01-05 09:46:24
【问题描述】:

我有两个班级:Class1,Class2。假设 Class1 是自动生成的,我们不更改它。我知道 Class2 的输入总是 Class1。我想比较 Class2 的两个对象,但我收到一个错误,即属性“a”Class1 无法在 Class2 中调用。

这是我的代码:

class Class1:
    def __init__(self,a ,b) -> None:
        self.a = a
        self.b = b


class Class2:
    def __init__(self, myobject) -> None:
        self.myobject = myobject

    def __eq__(self, other: object) -> bool:
        return self.myobject.a == other.a

    def __str__(self) -> str:
        return str(self.myobject)

variable1=Class2(Class1(1,2))
variable2=Class2(Class1(1,3))

print(variable1==variable2)

我得到的错误:

AttributeError: 'Class2' object has no attribute 'a'

谢谢

【问题讨论】:

    标签: python-3.x class


    【解决方案1】:

    你必须比较两个对象的内部类:

        def __eq__(self, other: object) -> bool:
            if not isinstance(other, Class2):
                return False
            return self.myobject.a == other.myobject.a
    

    尽管我强烈建议您将变量名称改进为更具描述性的名称。我还为稳健性添加了类型检查。

    【讨论】:

    • :) 变量名仅用于测试。谢谢你的建议
    猜你喜欢
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    • 2018-03-15
    • 2021-04-13
    • 1970-01-01
    • 2021-05-13
    • 2021-03-26
    • 2020-05-08
    相关资源
    最近更新 更多