您的位置:首页 > 移动开发 > WebAPP

廖雪峰教程之学习笔记_webapp实战项目_import的使用

2018-06-11 19:27 295 查看

在实战webapp项目中,发现之前学习速度可能有些过快,很多知识又忘记了。所以,带着复习python的基础知识,力争一点一点吃透。

一、模块

1、在python中一个.py文件就是一个模块(Module)

一个模块编写完毕,就可以被其他地方引用,不用从头编写。

相同名字的函数和变量可以分别存在于不同的模块中。

2、比模块更高一级的组织是包(package)

mycompany
├─ __init__.py
├─ abc.py
└─ xyz.py
mycompany是一个目录,目录里有__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

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: