Possible mixed indentation in Python?

后端 未结 2 1890
被撕碎了的回忆
被撕碎了的回忆 2021-01-20 23:56

Looking at this question, I tried OP\'s the code on my machine. Here are a text version and a screenshot:

\"bad

2条回答
  •  既然无缘
    2021-01-21 00:55

    For Python indenting - a tab is counted as equivalent to 8 spaces

    Since people almost never have their tab width set to 8 spaces, it's never a good idea to mix the two.

    Like many people, I used to prefer tabs for indenting, but found that it is a constant source of confusion when emailing code or posting in forums, etc. Which is what has happened here

    The most common thing these days is to just have the tab key in your editor insert 4 spaces.

    The point is that Python has to respect tabs because of backward compatibility, but it's not a good idea to use them anymore.

    As mentioned by @Fredrik, there is the -t option from the man page

          -t     Issue a warning when a source file mixes  tabs  and  spaces  for
                  indentation  in a way that makes it depend on the worth of a tab
                  expressed in spaces.  Issue an error when the  option  is  given
                  twice.
    

    Here the return runningtotal has a tab.

    $ python -tt
    Python 2.7.4 (default, Apr 19 2013, 18:28:01) 
    [GCC 4.7.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> def square(x):
    ...     runningtotal = 0
    ...     for counter in range(x):
    ...         runningtotal = runningtotal + x
    ...     return runningtotal
      File "", line 5
        return runningtotal
                          ^
    TabError: inconsistent use of tabs and spaces in indentation
    

提交回复
热议问题