繁体   English   中英

缩进代码在`if`和`def`下都是Python中的块?

[英]Are indented code under an `if` and a `def` both called blocks in Python?

在Python中, defclass关键字引入了一个新的范围 其他人,比如iffor not - 他们使用封闭代码的范围。 (范围解析在范围规则的简短描述中进行了解释

对于这两种不同类型的关键字,“缩进”代码行的正确术语是什么?

例:

def foo():
    do_bar() # indent type 1
    do_another_bar() # indent type 1

例2:

if True:
    do_something() # indent type 2
    do_more_things() # indent type 2

缩进“类型1”和“类型2”都称为代码“ ”吗?

一般来说,是的,在<keyword-clause>:下缩进的任何文本部分都称为“块”。

C / C ++ / Java / JavaScript / Perl / PHP / etc中花括号内的任何文本部分也是如此。 缩进是Python的大括号。

复合语句和套件

Python中复合语句的语法将缩进的代码块定义为“套件”。 例如:

if_stmt ::=  "if" expression ":" suite
             ( "elif" expression ":" suite )*
             ["else" ":" suite]

所以,在一个实际例子中:

if True:
    print "It's true!"

包含print语句的行(以及该缩进级别内的任何其他行)将是一个套件。

如果将每个级别的缩进视为代码块有帮助,那很好。 但是,Python语法将其称为套件。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM