a382418718 发表于 2020-6-8 09:26:07

提问!!关于类

import math
                                                                                                 请问class Line()类中的 def __init__()方法中的
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()
      self.y = p1.getY() - p2.getY()
      self.len = math.sqrt(self.x*self.x + self.y*self.y)

    def getLen(self):
      return self.len

请问class Line()类中的   def __init__()方法中的
p1.getX()和p2.getX()是否是调用的Point类中的getX()方法
p1.getY() 和 p2.getY()是否是调用Point类中的getY()方法

Twilight6 发表于 2020-6-8 09:30:07

本帖最后由 Twilight6 于 2020-6-8 09:31 编辑

p1.getX()和p2.getX()是否是调用的Point类中的getX()方法?

如果你将 Point类对象 实例给 p1、p2,那么调用 p1.getX() 就是在调用 Point 类中的 getX()

p1.getY() 和 p2.getY()是否是调用Point类中的getY()方法?

同理,要将 Point类对象 实例给 p1、p2 调用的才是 Point 类中的 getX、Y 方法,否则无法确定到底是不是调用的Point类,因为也有可能其他类有getX、Y方法

a382418718 发表于 2020-6-8 09:49:59

>>> p1 = Point(1, 1)
>>> p2 = Point(4, 5)
>>> line = Line(p1, p2)
>>> line.getLen()
5.0
补充一下代码

Twilight6 发表于 2020-6-8 10:31:35

a382418718 发表于 2020-6-8 09:49
>>> p1 = Point(1, 1)
>>> p2 = Point(4, 5)
>>> line = Line(p1, p2)


这里补充完了 就是调用 Point 类里的 getX、Y方法了
页: [1]
查看完整版本: 提问!!关于类