级别:初学者面向对象编程基础知识(python)
在下面的代码中,我的'samePoint'函数返回False,我期待True。任何提示?
import math
class cPoint:
def __init__(self,x,y):
self.x = x
self.y = y
self.radius = math.sqrt(self.x*self.x + self.y*self.y)
self.angle = math.atan2(self.y,self.x)
def cartesian(self):
return (self.x, self.y)
def polar(self):
return (self.radius, self.angle)
class pPoint:
def __init__(self,r,a):
self.radius = r
self.angle = a
self.x = r * math.cos(a)
self.y = r * math.sin(a)
def cartesian(self):
return (self.x, self.y)
def polar(self):
return (self.radius, self.angle)
def samePoint(p, q):
return (p.cartesian == q.cartesian)
>>> p = cPoint(1.0000000000000002, 2.0)
>>> q = pPoint(2.23606797749979, 1.1071487177940904)
>>> p.cartesian()
(1.0000000000000002, 2.0)
>>> q.cartesian()
(1.0000000000000002, 2.0)
>>> samePoint(p, q)
False
>>>
来源:麻省理工学院开放式http://ocw.mit.edu计算机科学导论和程序2008年秋季
嗨pyfunc,谢谢你的帮助!它似乎我犯了一个简单的错误,但它会帮助我获得正确的基础知识。非常感激! – raoulbia 2010-09-26 13:48:20