擅长:python、mysql、java
<p>首先回答您的问题<code>None</code>不是<code>str</code>它是<code>type.Nonetype</code>的唯一值,它是一个内置于Contstant中的python。请阅读<a href="https://docs.python.org/3/library/constants.html" rel="nofollow noreferrer">here</a>。
还有很多方法可以绕过/处理可能的<code>None</code>输入</p>
<p><strong>1。为了避开它,不去处理任何事情:</strong></p>
<p>应为<code>str</code>,因此它当然会抛出一个错误。只需传入<code>""</code>。但在本例中,调用<code>my_func(None)</code>仍然会给您一个错误。在</p>
<pre><code>my_func("")
</code></pre>
<p><strong>2。要处理可能的<code>None</code>输入:</strong></p>
<p>如果您想将<code>None</code>作为一个可能的输入参数,那么使用<code>*</code>将参数设置为可选参数</strong>,这样就可以输入<code>None</code>而不会出现错误</p>
^{pr2}$
<p><strong>或</strong></p>
<p><strong>默认输入为<code>None</code></strong>如果user pass-in的值不是<code>None</code>,那么您就知道用户传入了其他内容:这允许您执行<code>my_func(None)</code>操作而不会出错</p>
<pre><code>def my_func(some_str = None):
if some_str:
#do something
</code></pre>
<p>注意:这也允许您平等对待<code>None</code>和{<cd16>}(感谢Stael的指出)</p>