好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

day26

目录

模块的四种形式 模块 包 导入模块 导入包 1.系统自带软件--》不需要安装 2.需要下载的软件 3.自定义软件 import和from...import 循环导入问题 解决方法一: 解决方法二: 模块的搜索路径 Python文件的两种用途

模块的四种形式

模块

就是从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名是test.py的话,它的对应模块名就是test)

用来从逻辑上组件模块,本质就是一个目录(必须带有一个 __init__.py 文件)

导入模块

本质就是把python文件解释一遍

导入包

本质就是执行该报下的 __init__.py 文件;如果要导入包下面的模块:需要先导入包,然后从包下的 __init__.py 文件中再导入该包下的模块

python可以看成是手机--》pip看成应用管家--》模块就是应用软件

1.系统自带软件--》不需要安装

2.需要下载的软件

3.自定义软件

1.python内置模块:python解释器启动自带的time/random/os/sys 2.pip安装的模块,pip install jieba 3.自定义模块--》自定义代码 4.包(模块)-》未来详细讲

import和from...import

一般使用import或者from...import导入模块

import time

time.time()

模块的重复导入会直接饮用之前创造好的结果,不会重复执行模块的文件,即重复导入会发生:spam=spam=模块名称空间的内存地址

from time import time

time()

使用 import module 时,module本身被引入,但是保存它原有的命名空间,所以我们需要使用module.name这种方式访问它的 函数和变量。 from module import 这种方式,是将其它模块的函数或者变量引到当前的命名空间中,所以就不需要使用module.name这种方式访问其它的模块的方法了。

循环导入问题

# m1.py
form m2 import y
x = 10
print('m1:',x, y)
# m2.py
form m1 import x
y = 20
print('m2:',x, y)

运行m1,会发生报错: ImportError: cannot import name ‘y‘

解决方法一:

将定义变量放到导入模块之前

# m1.py
x = 10
form m2 import y
print('m1:',x, y)
# m2.py
y = 20
form m1 import x
print('m2:',x, y)

解决方法二:

将导入模块放到函数定义中

# m1.py
x = 10
def func1():
    form m2 import y
    print('m1:',x, y)

func1()
# m2.py
y = 20
def func2():
    form m1 import x
    print('m2:',x, y)
    
func2()

模块的搜索路径

内存 --> 内置 --> 自定制 --> 环境变量

Python文件的两种用途

执行文件: 当前运行的文件 模块文件: 被当做模块导入的文件
if __name__ == '__main__'

在执行文件中运行 __name__ == ‘__main__‘ , 在被当做模块导入的时候 __name__ == 模块文件名

查看更多关于day26的详细内容...

  阅读:26次