第038讲:类和对象:继承 课后作业
import math as mclass 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 = m.sqrt(self.x*self.x + self.y*self.y)
def getLen(self):
return self.len
>>> p1 = Point(1, 1)
>>> p2 = Point(4, 5)
>>> line = Line(p1, p2)
>>> line.getLen()
5.0
为啥类Line可以直接调用getX()和getY()函数呢?不是没有继承Point类吗,求助 line在实例化的时候,不是传入俩参数么?
一个参数是实例化的p1,另一个是p2.
类把类当做参数传入。 本帖最后由 Twilight6 于 2020-6-28 12:00 编辑
为啥类Line可以直接调用getX()和getY()函数呢?不是没有继承Point类吗,求助
因为你传入 Line(p1,p2) 的参数 p1 和 p2 都是Point 类的 实例化对象呀,是Point的实例对象就能用 Point 类的方法
所以在 Line 类里面调用了 p1,p2 实例对象,实际上就是在调用 Point 类里面的这些 getX 和 getY 方法呀
页:
[1]