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

在实战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 377

fib函数就直接可以使用。

三、将模块作为脚本运行

当在命令行输入

python fibo.py <arguments>

这样的语句时,模块中的代码会作为脚本直接运行 。就像使用import fibo一样。

此时,fibo模块的__name__属性被设置为'__main__',意味这是主程序。


但是import fibo时,__name__并不是'__main'。这就意味着,如果模块中有一段代码,在命令行直接启动时想让它执行,而import时不想让它执行,就可以放在if __name__ == '__main__':判断语句的后面。

因为,在命令行直接运行时,__name__ == '__main__',在import时__name__ != '__main__'

猜你喜欢

转载自blog.csdn.net/bird333/article/details/80648831
今日推荐