所以我有一个点类,我在其中声明一个点,然后对它执行操作。其中一个操作是scale,如果该点不是浮点值,则在获取某个点并对其进行缩放,同时引发错误。这是它的样子:
def scale(self, f):
if not isinstance(f, float):
raise Error("Parameter \"f\" illegal.")
self.x0 = f * self.x
self.y0 = f * self.y
如果我用这个测试代码测试它:
print '*** scale'
# f illegal
try:
p0 = Point(0.0, 0.0)
p0.scale(1)
except Error as e:
print 'caught:', e.message
# normal case
p0 = Point(2.0, 3.0)
p0.scale(2.3)
print p0
然后我得到的输出是:
*** scale
caught: Parameter "f" illegal.
2 3
但我想要的输出是:
*** scale
caught: Parameter "f" illegal.
5 7
因此错误消息看起来很好但是它打印出的值不是。那么为什么不打印出正确的值呢?这是我的 init 和 str 方法:
def __init__(self, x, y):
if not isinstance(x, float):
raise Error("Parameter \"x\" illegal.")
self.x = x
if not isinstance(y, float):
raise Error ("Parameter \"y\" illegal.")
self.y = y
def __str__(self):
return '%d %d' % (int(round(self.x)), int(round(self.y)))
答案 0 :(得分:3)
您正在分配新属性:
/api/v1/me/patients/{patient_id}/public_number
/models/patient.js
export default DS.Model.extend({
public_number: DS.attr('string')
});
和self.x0 = f * self.x
self.y0 = f * self.y
属于x0
和y0
的不同属性。因此,x
和y
保持不变。