<p>正如其他人所指出的,在您的<code>main()</code>函数中没有名称<code>b</code>。在</p>
<p>断言代码行为方式的更好方法是对其进行单元测试。单元测试在Python中非常容易,而且是一个很好的习惯。几年前,当我第一次开始编写Python时,我的搭档坚持要测试所有东西。从那一天起,我就一直在继续,而且从未因此而使用Python调试器!我离题了。。。在</p>
<p>考虑:</p>
<pre><code>import unittest
class Test(unittest.TestCase):
def test_fun1a_populates_tmp(self):
some_list = []
fun1a(tmp=some_list)
self.assertEquals([3, 2, 1], some_list)
def test_fun1a_returns_true(self):
some_list = []
ret = fun1a(tmp=some_list)
self.assertTrue(ret)
def test_fun1_populates_a(self):
some_list = []
fun1(a=some_list)
self.assertEquals([3, 2, 1], some_list)
def test_fun1_returns_true(self):
some_list = []
ret = fun1(a=some_list)
self.assertTrue(ret)
def test_fun2a_populates_returned_list(self):
ret = fun2a()
self.assertEquals([True, [3, 2, 1]], ret)
def test_fun2_returns_true(self):
some_list = []
ret = fun2(some_list)
self.assertTrue(ret)
def test_fun2_des_not_populate_passed_list(self):
some_list = []
fun2(some_list)
self.assertEqual(0, len(some_list))
if __name__ == '__main__':
unittest.main()
</code></pre>
<p>这些单元测试中的每一个都通过并记录了函数的行为(除了打印之外,如果需要的话,您可以添加这些测试)。它们还为您编辑代码时提供了一个工具,因为如果您破坏了某些东西,它们应该继续通过或开始失败。在</p>
<p>我还没有进行单元测试<code>main()</code>,因为它显然已损坏。在</p>