|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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()
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)
>>> line.getLen()
5.0
这是甲鱼的答案 我想知道 为什么 第二个类class Line() 他下面的代码 self.x = p1.getX() - p2.getX(), self.y = p1.getY() - p2.getY() 他这里没有继承为什么能直接调用其他函数
这里是把Line类里的形参p1和p2当成Point类实例化后的对象使用了,因为目前只有Poin类里才有getX()和getY()方法。所以当实例化Line类时,带入的实参也必须为Point类实例化后的对象才行,否则就会出错。定义类和定义函数是差不多的,只要符合基本的语法规则,怎么写都行,关键在与带入的实参是否能像定义时那么使用,如果不能,就会报错。
|
|