擅长:python、mysql、java
<p>对于所问的问题,<code>ast</code>模块将允许您检查这一点</p>
<p>然而,它本身似乎不是很有用——正如其他人所指出的,没有<code>return</code>的函数是有效的(它返回<code>None</code>),并且仅仅因为函数有<code>return</code>并不意味着它返回正确的值,甚至任何值(该<code>return</code>可以在<code>if</code>语句中)</p>
<p>有两种标准的处理方法:</p>
<ul>
<li><p>单元测试-使用各种输入组合(可能只有一个,可能有数百个)调用函数的单独代码,并检查答案是否与手动计算的答案匹配,或者是否满足要求</p>
</li>
<li><p>在Python <code>pylint</code>的情况下,检查<code>return</code>语句的思想的更一般的实现是“lint”;这将检查您的代码并检查各种看起来可能是错误的模式。一个附带的好处是它已经存在,并且可以检查几十种常见模式</p>
</li>
<li><p>另一个不同的更通用的实现是<code>mypy</code>类型检查器;这不仅检查是否有<code>return</code>语句,而且还检查它是否返回正确的类型,如在函数头中注释的那样</p>
</li>
</ul>
<p>通常,这些将与“门控主干”开发过程一起使用;禁止对<code>main</code>版本进行手动更改,只有通过测试、lint和/或mypy的更改才能被接受为<code>main</code>版本</p>