wujiale 发表于 2021-1-8 14:31:53

小白有一些不懂的问题求助大佬`~

代码和问题如下:

import math

class Point():
    def __init__(self,x=0,y=0):
      self.x = x
      self.y = y


    def getX(self):
      return self.x
   
    def getY(self):
      return self.y


class Line():
    def __init__(self,p1,p2):
      self.x = p1.getX() - p2.getX()# 各位大佬,这里为什么用getX getY 啊看不懂这一步
      self.y = p1.getY() - p2.getY()
      self.len = math.sqrt(self.x*self.x+self.y*self.y)

    def getLen(self):
      return self.len

   

昨非 发表于 2021-1-8 14:49:00

p1和p2是点类的对象,调用点类的方法getX,getY返回两个点的横纵坐标,然后求差值做勾股定理得到直线长度

昨非 发表于 2021-1-8 14:53:37


class Point():
    def __init__(self, x=0, y=0): #重写init方法,传入两参数x,y,默认值为0
      self.x = x #将参数分别赋值给属性
      self.y = y

    def getX(self): #返回x属性
      return self.x

    def getY(self): #返回y属性
      return self.y

class Line():
    def __init__(self, p1, p2): #重写init方法,传入两point类的对象
      self.x = p1.getX() - p2.getX()#初始化x,y属性,其值为两point对象x,y属性的差值
      self.y = p1.getY() - p2.getY()
      self.len = math.sqrt(self.x*self.x + self.y*self.y) #调用math库求出根号下二者的平方和

    def getLen(self): #返回len属性
      return self.len

p1 = Point(1, 1) #实例化两个point对象
p2 = Point(4, 5)
line = Line(p1, p2) #两point对象作为参数,实例化一个line对象
print(line.getLen()) #返回长度
测试结果:
5.0
页: [1]
查看完整版本: 小白有一些不懂的问题求助大佬`~