擅长:python、mysql、java
<p>在您修复了函数调用问题之后,您将遇到浮点问题。在</p>
<p>试试看</p>
<pre><code>def is_same_point(p1, p2, e):
for c1, c2 in zip(c1, c2):
if abs(c1 - c2) > e:
return False
return True
</code></pre>
<p>我真的很惊讶,你发布的代码样本对你有用。你一定是为这样做而建造的。一般来说,不能直接比较浮点值。在</p>
<p>编写上述函数的一种更具python风格的方法是</p>
^{pr2}$
<p>你仍然需要传递<code>e</code>(对于epsilon),这会很快变老的。在</p>
<pre><code>def make_point_tester(e):
def is_same_point(point1, point2):
return not any(abs(c1 - c2) > e for c1, c2 in zip(point1, point2))
return is_same_point
is_same_point = make_point_tester(.001)
</code></pre>
<p>您已经准备好将函数作为第一类对象,因此您应该不会对这段代码有任何问题;)</p>