廖雪峰教程之学习笔记_webapp实战项目_import的使用
2018-06-11 19:27
295 查看
在实战webapp项目中,发现之前学习速度可能有些过快,很多知识又忘记了。所以,带着复习python的基础知识,力争一点一点吃透。
一、模块
1、在python中一个.py文件就是一个模块(Module)
一个模块编写完毕,就可以被其他地方引用,不用从头编写。
相同名字的函数和变量可以分别存在于不同的模块中。
2、比模块更高一级的组织是包(package)
mycompany ├─ __init__.py ├─ abc.py └─ xyz.pymycompany是一个目录,目录里有__init__.py,abc.py,xyz.py三个.py文件。注意:必须有__init__.py这个文件的目录才是包,__init__.py可以是空文件,可以写一些初始化的python代码。__init__.py本身就是一个模块,模块名是mycompany
包里的模块名字就变成了mycompany.abc和mycompany.xyz
3、和目录类似,包也可以多层级
mycompany ├─ web │ ├─ __init__.py │ ├─ utils.py │ └─ www.py ├─ __init__.py ├─ abc.py └─ xyz.py
二、使用import引入模块
1、import moduleName
导入moduleName模块,但是不会把moduleName模块中所有类和函数导入当前的命名空间中(语意表);它只是引入了模块名moduleName。你可以通过moduleName.func和moduleName.className来访问模块中定义的函数和类。除了包含函数定义外,模块也可以包含可执行语句。这些语句一般用来初始化模块。它们仅在 第一次 被导入的地方执行一次。
2、from moduleName import className,funcName
这种语句会直接将className,funcName导入到本模块的语意表中。
>>> from fibo import fib, fib2 >>> fib(500) 1 1 2 3 5 8 13 21 34 55 89 144 233 377fib函数就直接可以使用。
三、将模块作为脚本运行
当在命令行输入
python fibo.py <arguments>这样的语句时,模块中的代码会作为脚本直接运行 。就像使用import fibo一样。
此时,fibo模块的__name__属性被设置为'__main__',意味这是主程序。
但是import fibo时,__name__并不是'__main'。这就意味着,如果模块中有一段代码,在命令行直接启动时想让它执行,而import时不想让它执行,就可以放在if __name__ == '__main__':判断语句的后面。
因为,在命令行直接运行时,__name__ == '__main__',在import时__name__ != '__main__'
三、某定义不会被连续import
例如:a.py中定义了class A。
b.py中使用了:from a import A
c.py又使用了import b,则在c.py中不能直接使用class A
阅读更多相关文章推荐
- 廖雪峰教程之学习笔记_webapp实战项目_aiohttp.web.Application()的使用
- 廖雪峰教程之学习笔记_webapp实战项目_从协程到异步IO到aiohttp
- 廖雪峰教程之学习笔记_webapp实战项目_MySQL连接池
- iOS学习笔记75-NSURLSession使用实战教程
- CMS视频学习笔记1:cms项目和使用技术简介
- Cocos2dx 学习笔记整理----在项目中使用图片(一)
- JProfiler使用详细教程学习笔记
- directx 学习笔记之一 如何安装并且在visual studio2010的项目中使用directx
- swift学习六天 项目实战-知乎日报之UITabelView使用
- OC学习笔记二 使用xcode创建项目
- Maven学习笔记六:Maven使用教程(打包和运行)
- Laravel框架学习笔记(二)项目实战之模型(Models)
- swift学习第八天 项目实战-知乎日报之UIWebView使用
- 不错的maven学习笔记,收藏——Maven学习 (三) 使用m2eclipse创建web项目
- Ext JS4学习教程+笔记(五)Form Panel的使用
- 《Flex 4实战》学习笔记:CH15 使用数据服务
- 学习笔记-[Maven实战]-第三章:Maven使用入门(2)
- 学习笔记-[Maven实战]-第三章:Maven使用入门(3)
- Cocos2dx 学习笔记整理----在项目中使用图片(三)
- [Matlab]基础教程学习笔记(六):NoteBook的使用