1. 在python中,往往一个python文件叫做模块,而可以直接运行的模块文件往往也叫做脚本(顶层程序文件的非正式说法)
2. 模块-python 程序架构的一个核心概念。更大的程序往往以多个模块文件的形式出现,并且导入了其他文件模块的工具,其中的一个模块文件设计成主文件(顶层文件),用来启动整个程序。
**不是变量声明,都是可执行语句,只有执行到这些语句时,模块才会被导入。因为是可执行语句,所以可嵌套在if def等语句中
(3) from语句潜在的陷阱:
**变量名冲突:导入的变量,与作用域中现有的变量名冲突,变量就会变悄悄的覆盖掉,当然如果你了解和预料到这种情况,这就不是什么大问题,且当你明确列出了要导入的变量名时,问题也不大。
**和reload同时调用时。。???
** 导入多个文件时,都用 import *,破坏了命名空间,不知道哪些变量名来自哪些模块。所以这里建议:用 from时明确列出变量,且from *只使用一次,那么未定义的变量,都可认为是来自 from * 所引用的模块。
7.import 和 reload的区别
reload (内置函数)可以修改程序的部分,而无须停止整个程序。
8.import和exec的区别
2. 模块-python 程序架构的一个核心概念。更大的程序往往以多个模块文件的形式出现,并且导入了其他文件模块的工具,其中的一个模块文件设计成主文件(顶层文件),用来启动整个程序。
3. 模块和类实际上是重要的命名空间。。理解成工具库更具实际意义。
4. 模块名会映射到外部文件名。。。
5.扩展模块:用其他语言编写的模块文件。
(1)联系
**导入只发生一次,不是一直有效:有意而为之的性能考虑。要想再次执行,用reload
python模块文件中,顶层代码通常只执行一次,借助这个特性对变量进行初始化 。。。。????**不是变量声明,都是可执行语句,只有执行到这些语句时,模块才会被导入。因为是可执行语句,所以可嵌套在if def等语句中
(2)区别
** import是将整个模块赋给了一个变量名,这个变量名就是模块名,“模块名.属性/方法”来调用
**from 是在调用的模块里,创建了被调用模块里一个或多个相同的变量。相当于copy了变量名到另外一个命名空间,在另外一个空间直接用变量名访问,而不是“模块名.属性/方法”,访问方便了。from xx import * copy了全部的变量。(3) from语句潜在的陷阱:
**变量名冲突:导入的变量,与作用域中现有的变量名冲突,变量就会变悄悄的覆盖掉,当然如果你了解和预料到这种情况,这就不是什么大问题,且当你明确列出了要导入的变量名时,问题也不大。
**和reload同时调用时。。???
** 导入多个文件时,都用 import *,破坏了命名空间,不知道哪些变量名来自哪些模块。所以这里建议:用 from时明确列出变量,且from *只使用一次,那么未定义的变量,都可认为是来自 from * 所引用的模块。
7.import 和 reload的区别
reload (内置函数)可以修改程序的部分,而无须停止整个程序。
8.import和exec的区别
???