Python如何解释其代码?
我目前正在尝试学习Python。我学习了一些Liberty Basic,想知道Python是如何解释其代码的。我注意到我的一些小程序以一种奇怪的方式运行,我不确定它是如何运行的。在Liberty Basic中,它是自上而下的。在开始任何主要的Python编程之前,我想知道它是如何运行代码的。从上到下,从下到上?任何与此相关的信息都将不胜感激。Python自上而下地解释任何给定的代码文件。然而,有许多方法可以将代码从上到下解释,但不能完全按照这种方式运行Python如何解释其代码?,python,Python,我目前正在尝试学习Python。我学习了一些Liberty Basic,想知道Python是如何解释其代码的。我注意到我的一些小程序以一种奇怪的方式运行,我不确定它是如何运行的。在Liberty Basic中,它是自上而下的。在开始任何主要的Python编程之前,我想知道它是如何运行代码的。从上到下,从下到上?任何与此相关的信息都将不胜感激。Python自上而下地解释任何给定的代码文件。然而,有许多方法可以将代码从上到下解释,但不能完全按照这种方式运行 例如,考虑下面的小程序: def foo(
例如,考虑下面的小程序:
def foo():
print("World")
print("Hello")
foo()
如果您只查看文件中print()
调用的顺序,那么您可能希望输出是
World
Hello
但是,由于第一个print语句位于函数定义中,因此当解释器到达该行时,它不会立即运行,而是成为foo
函数的一部分。稍后,当调用foo()
时,它实际运行,因此实际输出是
Hello
World
Python自上而下解释任何给定的代码文件。然而,有许多方法可以将代码从上到下解释,但不能完全按照这种方式运行
例如,考虑下面的小程序:
def foo():
print("World")
print("Hello")
foo()
如果您只查看文件中print()
调用的顺序,那么您可能希望输出是
World
Hello
但是,由于第一个print语句位于函数定义中,因此当解释器到达该行时,它不会立即运行,而是成为foo
函数的一部分。稍后,当调用foo()
时,它实际运行,因此实际输出是
Hello
World
你有没有想过读一本关于Python编程的书?下面是一个好的阅读清单:
Python开始从上到下逐行执行代码,并像任何其他命令式编程语言一样根据分支条件进行分支。这本书不应该离基础太远…你有没有考虑过读一本关于Python编程的书?下面是一个好的阅读清单:
Python开始从上到下逐行执行代码,并像任何其他命令式编程语言一样根据分支条件进行分支。这不应该与基本要求相差太远…这不太正确。例如,
def foo():print(a);当您调用foo()
时,a=2
不会打印全局变量a
,如果它总是从上到下,您会想到这一点;它将引发一个UnboundLocalError
,因为在编译foo
结束时,似乎a
被赋值,并决定它是整个函数中的局部变量。但是……对于询问者来说,可能已经足够接近了。当然,Python从不解释源代码;它解释字节码,如果它还没有字节码,则将源代码编译成字节码。但是再一次,可能对询问者来说足够近了。啊,我明白了。由于我在编写代码时遇到的问题,这对我有很大帮助。谢谢:)这不是真的。例如,def foo():print(a);当您调用foo()
时,a=2
不会打印全局变量a
,如果它总是从上到下,您会想到这一点;它将引发一个UnboundLocalError
,因为在编译foo
结束时,似乎a
被赋值,并决定它是整个函数中的局部变量。但是……对于询问者来说,可能已经足够接近了。当然,Python从不解释源代码;它解释字节码,如果它还没有字节码,则将源代码编译成字节码。但是再一次,可能对询问者来说足够近了。啊,我明白了。由于我在编写代码时遇到的问题,这对我有很大帮助。谢谢:)与其问这样一个宽泛而模糊的问题,为什么不发布一个不按预期方式运行的小程序,展示让你困惑的部分,并问为什么它会这样运行?与其问这样一个宽泛而模糊的问题,为什么不发布一个不按预期方式运行的小程序,展示让你困惑的部分,并问为什么它是这样工作的?实际上我还没有看过任何书。我没有时间出去找书或上网。但谢谢你提供了这些书的链接。:)实际上我还没有看过任何书。我没有时间出去找书或上网。但谢谢你提供了这些书的链接。:)