<i id='vAimn'><tr id='vAimn'><dt id='vAimn'><q id='vAimn'><span id='vAimn'><b id='vAimn'><form id='vAimn'><ins id='vAimn'></ins><ul id='vAimn'></ul><sub id='vAimn'></sub></form><legend id='vAimn'></legend><bdo id='vAimn'><pre id='vAimn'><center id='vAimn'></center></pre></bdo></b><th id='vAimn'></th></span></q></dt></tr></i><div id='vAimn'><tfoot id='vAimn'></tfoot><dl id='vAimn'><fieldset id='vAimn'></fieldset></dl></div>

    • <bdo id='vAimn'></bdo><ul id='vAimn'></ul>
  • <legend id='vAimn'><style id='vAimn'><dir id='vAimn'><q id='vAimn'></q></dir></style></legend>
    <tfoot id='vAimn'></tfoot>
      1. <small id='vAimn'></small><noframes id='vAimn'>

        将布尔值与整数混合时,Mypy 不会抛出错误

        时间:2023-09-01

          <small id='viuTB'></small><noframes id='viuTB'>

        • <tfoot id='viuTB'></tfoot>
            <bdo id='viuTB'></bdo><ul id='viuTB'></ul>
              <tbody id='viuTB'></tbody>

              • <i id='viuTB'><tr id='viuTB'><dt id='viuTB'><q id='viuTB'><span id='viuTB'><b id='viuTB'><form id='viuTB'><ins id='viuTB'></ins><ul id='viuTB'></ul><sub id='viuTB'></sub></form><legend id='viuTB'></legend><bdo id='viuTB'><pre id='viuTB'><center id='viuTB'></center></pre></bdo></b><th id='viuTB'></th></span></q></dt></tr></i><div id='viuTB'><tfoot id='viuTB'></tfoot><dl id='viuTB'><fieldset id='viuTB'></fieldset></dl></div>

                  <legend id='viuTB'><style id='viuTB'><dir id='viuTB'><q id='viuTB'></q></dir></style></legend>
                  本文介绍了将布尔值与整数混合时,Mypy 不会抛出错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在尝试使用 mypy 来检查 Python 3 项目.在下面的示例中,我希望 mypy 将类 MyClass 的构造标记为错误,但事实并非如此.

                  I am trying to use mypy to check a Python 3 project. In the example below, I want mypy to flag the construction of the class MyClass as an error, but it doesn't.

                  class MyClass:
                      def __init__(self, i:int) -> None:
                          pass
                  
                  obj = MyClass(False)
                  

                  谁能解释一下,好吗?IE.解释一下mypy为什么不报错?

                  Can anyone explain this, please? I.e. explain why mypy does not report an error?

                  推荐答案

                  这是因为——不幸的是!— Python 中的布尔值是整数.如,boolint 的子类:

                  It’s because —unfortunately! —booleans in Python are integers. As in, bool is a subclass of int:

                  In [1]: issubclass(bool, int)
                  Out[1]: True
                  

                  因此代码类型检查,并且 False 是一个有效的整数,值为 0.

                  Hence the code typechecks, and False is a valid integer with value 0.

                  这篇关于将布尔值与整数混合时,Mypy 不会抛出错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:Python 条件运算符解决方法如何工作? 下一篇:Python 中只有一个 True 和一个 False 对象吗?

                  相关文章

                  <small id='mOKJL'></small><noframes id='mOKJL'>

                  <legend id='mOKJL'><style id='mOKJL'><dir id='mOKJL'><q id='mOKJL'></q></dir></style></legend>

                  1. <i id='mOKJL'><tr id='mOKJL'><dt id='mOKJL'><q id='mOKJL'><span id='mOKJL'><b id='mOKJL'><form id='mOKJL'><ins id='mOKJL'></ins><ul id='mOKJL'></ul><sub id='mOKJL'></sub></form><legend id='mOKJL'></legend><bdo id='mOKJL'><pre id='mOKJL'><center id='mOKJL'></center></pre></bdo></b><th id='mOKJL'></th></span></q></dt></tr></i><div id='mOKJL'><tfoot id='mOKJL'></tfoot><dl id='mOKJL'><fieldset id='mOKJL'></fieldset></dl></div>
                  2. <tfoot id='mOKJL'></tfoot>
                        <bdo id='mOKJL'></bdo><ul id='mOKJL'></ul>