littleMaple
V2EX  ›  问与答

Python 语法设计中的一些分号是否是冗余的 token?例如 if/else/for 语句行末和函数定义行末的那些分号

  •  
  •   littleMaple · Jul 30, 2019 · 2316 views
    This topic created in 2657 days ago, the information mentioned may be changed or developed.

    Python 的语法要求例如 for/while/if/else 语句的行末、函数头行末、类定义行末的地方都要求有分号;可是既然 Python 已经能够通过缩进规则来自动识别代码所在块( block ),似乎这些地方出现的分号其实是冗余的,可以在设计的时候去掉?

    class Building:
      def get_payment():
        if 1 + 1 != 2:
           raise UniverseError
        else:
          for item in self._payment: 
            yield item
    
    # In contrast, if the language doesn't require colons
    class Building
      def get_payment()
        if 1 + 1 != 2
          raise UniverseError
        else
          for item in self._payment
            yield item
    
    Supplement 1  ·  Jul 30, 2019
    不好意思说错了,应该是冒号,不是分号 _(:3 」∠❀)_
    7 replies  •  2019-07-31 14:57:34 +08:00
    misaka19000
    misaka19000
    Jul 30, 2019❤️2
    1
    冒号分号不分
    2DaYe
    2DaYe
    Jul 30, 2019 via iPhone
    2
    给我看的一愣一愣的……
    littleMaple
    littleMaple
    OP
    Jul 30, 2019
    3
    @misaka19000 我错了 o(T-T)ゞ
    msg7086
    msg7086
    Jul 30, 2019
    4
    是的,来写 Ruby 吧(逃
    daweii
    daweii
    Jul 30, 2019❤️1
    5
    主要是增强代码可读性。还有一个是让语法高亮的功能更加容易开发。
    关于可读性,有一个非常好的例子。

    ```
    pewkah
    lalala
    chunkykachoo
    pewpewpew
    skunkybacon
    ```

    ```
    pewkah
    lalala: (<-- see this colon)
    chunkykachoo
    pewpewpew
    skunkybacon
    ```
    aguesuka
    aguesuka
    Jul 31, 2019 via Android❤️1
    7
    你在控制台敲 python 的时候,如果有冒号,回车会下一行空四格,否则会执行
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   698 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 20:47 · PVG 04:47 · LAX 12:47 · JFK 15:47
    ♥ Do have faith in what you're doing.