python中如何设置继承对象

我编写的简单代码遇到问题


类点有 x 和 y 值


类正方形(Point)包括 4 个点:p1,p2,p3,p4


我正在尝试使用 sq1.p1.set_x(num1) 更新 p1 的 x 值,但失败了。


我尝试使用公共定义但也失败了


我的问题是谁的?谢谢


class Point:

    def __init__(self,x=0,y=0):

        self.__x = x

        self.__y = y

           

    def get_x(self):

        return self.__x

    

    def get_y(self):

        return self.__y

    

    def set_x(self,x=0):

        self.__x = x

    

    def set_y(self,y=0):

        self.__y = y

  


class Square (Point):

    def __init__(self,p1,p2,p3,p4):

        self.__p1 = p1

        self.__p2 = p2

        self.__p3 = p3

        self.__p4 = p4

            

    def get_p1(self):

        return self.__p1

    

    def get_p2(self):

        return self.__p2

    

    def get_p3(self):

        return self.__p3

    

    def get_p4(self):

        return self.__p4

    

    def set_p1(self,p1):

        self.__p1 = p1

    

    def set_p2(self,p2):

        self.__p2 = p2

    

    def set_p3(self,p1):

        self.__p3 = p3

    

    def set_p4(self,p4):

        self.__p4 = p4



def main():


    p1 = Point(2,0)

    p2 = Point(2,2)

    p3 = Point(0,2)

    p4 = Point(0,0)


    sq1 = Square(p1,p2,p3,p4)

    sq1.p1.set_x(4) # this line failing


if __name__ == "__main__":

    main()

    


慕斯王
浏览 49回答 1
1回答

BIG阳

代替    sq1.p1.set_x(4) # this line failing和    sq1.get_p1().set_x(4)这是因为类Square没有属性p1(它有__p1属性,但没有p1)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python