__contain__和contain之间的区别
2026/6/26 11:42:05 网站建设 项目流程
defcontains(self,circle_2D):x1=self.__x y1=self.__y x2=circle_2D.get_x()y2=circle_2D.get_y()r1=self.__radius r2=circle_2D.get_radius()countDis=(pow((x2-x1),2)+pow((y2-y1),2))**0.5ifcountDis+r2<r1:# 修改后可以完全包含print(f"坐标x:{x2},y:{y2},半径{r2},点2在园1内")returnTrueelse:print(f"坐标x:{x2},y:{y2},半径{r2},点2不在园1内")returnFalsedef__contains__(self,other):x1=self.__x y1=self.__y x2=other.get_x()y2=other.get_y()r1=self.__radius r2=other.get_radius()countDis=(pow((x2-x1),2)+pow((y2-y1),2))**0.5ifcountDis+r2<r1:# 修改后可以完全包含print(f"坐标x:{x2},y:{y2},半径{r2},点2在园1内")returnTrueelse:print(f"坐标x:{x2},y:{y2},半径{r2},点2不在园1内")returnFalsedefmain_contain_cicle():circle1=Circle(100,200,150)circle2=Circle(100,200,50)circle1.contains(circle2)#12.14用正常方法circle1.__contains__(circle2)#12.15利用修改魔法方法main_contain_cicle()


两种办法一致。

我大概明白了在书中为什么要把已经成为重载的__contains__或者__str__重新编写,是告诉我们这些已经固定的重载函数和方法,是可以按我们的要求,根据每个应用场景进行修改。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询