以Mark Lutz著的《Python学习手册》为教程,每天花1个小时左右时间学习,争取两周完成。 --- 写在前面的话
2013-7-22 22:00 学习笔记
1,每一个Python文件都是一个模块。模块将变量名封装进了自包含的软件包,这一点可以避免变量名的冲突。
2,导入模块不同于C语言中的#include,并非只是把一个文本内容插入到另一个文件中。导入其实是运行时运算。
3,import会依次搜索以下目录:
这个四个组件组合起来就是sys.path。
4,import b 会加载如下文件:
如果在相同目录下找到b.py和b.so,Python会遵循一定的标准进行挑选,但这个挑选顺序并不能保证永远不变,因此不要依赖这个挑选标准。
5,以字节码的形式分发程序,可以避免公开源代码。
6,第三方扩展通常使用标准链接库中的distutils工具来自动安装,一般会附带一个setup.py脚本。
7,from会把变量名复制到另一个作用域,避免使用模块来引用。*表示复制模块中的所有变量。例如:
import module1 module1.printer('hello world') from module1 import printer printer('hello world') from module1 imort * printer('hello world')
9,import和from都是赋值语句。前者将整个模块对象赋值给一个变量名,后者将一个或多个变量名赋值给另一个模块中同名的对象。from语句会让变量的位置变得更隐秘和模糊。
10,模块M的命名空间可以通过属性__dict__或dir(M)获得。
11,需要注意模块导入后的作用域。例如有一个模块文件moda.py
X = 88 def fun(): global X X = 99导入该模块:
X = 11 import moda moda.fun() print X,moda.X输出结果为:
11 99