擅长:python、mysql、java
<p>运行Python模块(.py文件)时,其中的顶级语句将按照它们出现的顺序从上到下(从开始到结束)执行。这意味着您在定义某个内容之前不能引用它。例如,以下内容将生成所示的错误:</p>
<pre><code>c = a + b # -> NameError: name 'a' is not defined
a = 13
b = 17
</code></pre>
<p>与许多其他语言不同,<code>def</code>和<code>class</code>语句在Python中是可执行的,而不仅仅是声明性的,因此在发生这种情况并定义它们之前,您不能引用<code>a</code>或<code>b</code>。这就是为什么第一个示例在执行<code>Kerma()</code>函数的<code>def</code>语句、处理函数体以及将结果函数对象绑定到函数名之前引用该函数时遇到问题的原因,因此在脚本中没有定义该函数</p>
<> > C++等语言程序通常在运行前进行预处理,在编译阶段,所有的程序和它所引用的任意^ {< CD7>}文件都被同时读取和处理。与Python不同,这种语言的特点是声明性语句,允许在使用前声明(但不定义)函数的名称和调用序列(或静态类型的变量),这样当编译器遇到它们的名称时,它就有足够的信息来检查它们的用法,这主要涉及类型检查和类型转换,所有这些都不需要定义它们的实际内容或代码体</p>