|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在38课动手题中
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()
self.y = p1.getY() - p2.getY()
self.len = math.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)
f=line.getLen()
print(f)
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)
1,为什么没有使用super,依然没有覆盖掉point的方法?
2,在line(),中没有明确的调用point的语句 .Point() 为什么还可以用
self.x = p1.getX() - p2.getX()
self.y = p1.getY() - p2.getY()
self.len = math.sqrt(self.x*self.x + self.y*self.y)
1,为什么没有使用super,依然没有覆盖掉point的方法?
因为代码中类Line根本就不是继承于Point类,注意看class Line(): 括号里面并没有写Point
2,在line(),中没有明确的调用point的语句 .Point() 为什么还可以用
self.x = p1.getX() - p2.getX()
self.y = p1.getY() - p2.getY()
self.len = math.sqrt(self.x*self.x + self.y*self.y)
因为虽然Line类不是继承于Point,但是它的初始化函数中传入的是两个Point类的对象
用Point类的对象当然可以调用它的方法
|
|