Python 导入vs C';包括
在C中: 我相信“foo.h”会被复制并粘贴到“#include”的位置 我发现Python导入是不同的 我只是重构了一些GAE代码,这些代码最初将所有请求处理程序都放在一个大index.py文件中 新目录树:Python 导入vs C';包括,python,import,Python,Import,在C中: 我相信“foo.h”会被复制并粘贴到“#include”的位置 我发现Python导入是不同的 我只是重构了一些GAE代码,这些代码最初将所有请求处理程序都放在一个大index.py文件中 新目录树: #include "foo.h" int main() { } 不应该在handlers.FirstPage和handlers.SecondPage中“查看”全局文件中的所有内容,因为全局文件是在处理程序之前“首先”导入的。*?是的,它们是先导入的,但它们是先导入到index.py中
#include "foo.h"
int main()
{
}
不应该在handlers.FirstPage和handlers.SecondPage中“查看”全局文件中的所有内容,因为全局文件是在处理程序之前“首先”导入的。*?是的,它们是先导入的,但它们是先导入到
index.py
中的。要“可见”globals
也需要导入到相应的文件中。是的,它们首先被导入,但它们首先被导入到index.py
中。要“可见”globals
也需要导入到相应的文件中。在C语言中,它或多或少可以“复制粘贴”代码,而在Python中则完全不同
还记得Python的禅宗吗
from globals import * # we need all of the globals
# ...
from handlers.FirstPage import FirstPage
from handlers.SecondPage import SecondPage
#.. etc.
每次导入模块时,都会执行其代码,但保留定义的所有范围。因此,当您导入
处理程序时,您为索引
提供了访问全局
范围的权限,但是处理程序
模块没有访问全局
模块的权限,除非您明确允许它访问范围,导入它。而在C中,它或多或少地“复制粘贴”代码,在Python中是完全不同的
还记得Python的禅宗吗
from globals import * # we need all of the globals
# ...
from handlers.FirstPage import FirstPage
from handlers.SecondPage import SecondPage
#.. etc.
每次导入模块时,都会执行其代码,但保留定义的所有范围。因此,当您导入处理程序
时,您授予索引
访问全局
范围的权限,但是处理程序
模块没有访问全局
模块的权限,除非您明确允许它访问该范围,导入它。编写依赖于C的#include
行为的代码基本上是复制并粘贴代码到文件中,即使在C中也是不好的做法,当然在Python中根本不起作用,因为导入不是这样做的。如果第一页或第二页中的声明依赖于全局变量,则它们应该自己导入全局变量。如果你是用C写的,它们应该是“包含”全局变量。编写依赖于C的#include
行为的代码基本上是复制并粘贴代码到文件中,即使在C中也是不好的做法,当然在Python中根本不起作用,因为导入不是这样做的。如果第一页或第二页中的声明依赖于全局变量,则它们应该自己导入全局变量。如果你是用C写的,它们应该包含全局变量。每次你导入一个模块,你都会执行它的代码。。。。不完全正确。代码仅在第一次导入时执行。每次导入模块时,都会执行其代码。。。。不完全正确。该代码仅在第一次导入时执行。
Explicit is better than implicit.
...
Namespaces are one honking great idea -- let's do more of those!