擅长:python、mysql、java
<p>你真走运。您的代码使用尾部递归,也就是说,当您在函数中使用递归时。编译器通常可以为您执行此操作,但您必须在此处手动执行:</p>
<pre><code>total = Color(0, 0, 0)
mult = 1
n = 1
while n < 10: # Maximum recursion depth
# Here was code to look for intersections
if not hit: break
total += mult * hit.diffuse * hit.emittance
mult *= hit.diffuse
n += 1
return total
</code></pre>