鱼C论坛

 找回密码
 立即注册
查看: 1610|回复: 2

[已解决]小白有一些不懂的问题求助大佬`~

[复制链接]
发表于 2021-1-8 14:31:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码和问题如下:

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:53:37

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

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

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

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

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

  16. p1 = Point(1, 1) #实例化两个point对象
  17. p2 = Point(4, 5)
  18. line = Line(p1, p2) #两point对象作为参数,实例化一个line对象
  19. print(line.getLen()) #返回长度
复制代码

测试结果:
  1. 5.0
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-8 14:49:00 | 显示全部楼层
p1和p2是点类的对象,调用点类的方法getX,getY返回两个点的横纵坐标,然后求差值做勾股定理得到直线长度
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-8 14:53:37 | 显示全部楼层    本楼为最佳答案   

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

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

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

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

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

  16. p1 = Point(1, 1) #实例化两个point对象
  17. p2 = Point(4, 5)
  18. line = Line(p1, p2) #两point对象作为参数,实例化一个line对象
  19. print(line.getLen()) #返回长度
复制代码

测试结果:
  1. 5.0
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 13:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表