马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第038讲:类和对象:继承,课后作业 动动手 0
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
这里为什么要用 getX(self) 和 getY(self)呢?为什么不直接用属性呢?可以减少很多代码量啊,请问用函数方法获取值 是有什么更好的原因吗?
import math
class Point():
def __init__(self, x=0, y=0):
self.x = x
self.y = y
class Line():
def __init__(self, p1, p2):
self.x = p1.x - p2.x
self.y = p1.y - p2.y
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
直接调用属性 效果是一样一样的,为什么要多写那么多代码用函数呢?望各位鱼油指导一下,万分感谢
|