python-模块

来源:互联网 发布:python游戏服务器开发 编辑:程序博客网 时间:2024/04/30 09:01
1. 在python中,往往一个python文件叫做模块,而可以直接运行的模块文件往往也叫做脚本(顶层程序文件的非正式说法)
2. 模块-python 程序架构的一个核心概念。更大的程序往往以多个模块文件的形式出现,并且导入了其他文件模块的工具,其中的一个模块文件设计成主文件(顶层文件),用来启动整个程序。

3. 模块和类实际上是重要的命名空间。。理解成工具库更具实际意义。

4. 模块名会映射到外部文件名。。。

5.扩展模块:用其他语言编写的模块文件。


6.import和 from import的区别与联系

  (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的区别

  ???


9.模块命名空间的概念:文件生成命名空间
原创粉丝点击