第十五天:模块

第十五天:模块,第1张

概述模块的四种形式 模块 就是从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名是test.py的话,它的对应模块名就是test) 包 用来从逻辑上组件模块,本质就是一个目录(必须带有一个__init__.py文件) 导入模块 本质就是把python文件解释一遍 导入包 本质就是执行该报下的__init__.py文件;如果要导入包下面的模块 模块的四种形式 模块

就是从逻辑上组织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

以time为例:
import time

1.开辟内存空间,内存空间命名为time
2.把time.py中所有代码读入空间,然后运行
3.通过time.方法名使用time模块中的方法

#test.pyimport timeimport time as t  #变量名t指向time模块的名称空间from time import sleepfrom time import sleep,localtime

优点:永不冲突
缺点:每次导入多输入几个字符,非常麻烦

from...import...

以time里的sleep为例

from time import sleep

1.开辟内存空间,内存空间命名为time
2.把time.py中所有代码读入空间,然后运行
3.把sleep()方法读入import和from import,因此可以直接使用方法名

# *__all__=['']#test.py__all__ = ['f1','f2']def f1():    print(1)def f2():    print(2)def f3():    print(3)from test import *    test.f3()    #无法运行import test    test.f3()   # 3

优点:少打几个字符
缺点:容易冲突

循环导入
#m1.pyfrom m2 import yx = 10print('m1:',x,y)#m2.pyfrom m1 import xy = 20print('m2:',y)

过程:m1.py --> m2.py --> m1.py ...

结果:x/y在这个过程中一直没有生成

解决方案一
#m1.pyx = 10from m2 import yprint('m1:',y)#m2.pyy = 20from m1 import xprint('m2:',y)# m2: 10 20# m1: 10 20# m2: 10 20

过程:m1.py -->10 20 --> m2.py -->10 20--> m1.py --> x = 10 20

解决方案二
# m1.pydef f1():    from m2 import y    print(y)x = 10# m2.pydef f1():    from m1 import xy = 20 # y = 20

过程:f1() --> m2.py --> y = 20

4.模块的搜索路径

先从内存中寻找

from m2 import yprint(y)import timetime.sleep(10)  # 10s内删除了m2from m2 import yprint(y)

再从内置中寻找

from time import timeprint(time)

然后从自定制寻找

x = 10

最后从环境变量中寻找

Python文件的两种用途

作为模块文件,模块可以有多个

作为执行文件,执行文件只有一个

# m1.pyx = 10if __name__ == '__main__':print(x)# m2.pyimport m1

if __name__ == ‘__main__‘:这段代码在pycharm里面只需要打一个main然后tab即可打出来,不需要一个字一个字打

当运行m1时__name__ == ‘__main__‘所以会输出x

运行m2时__name__ != ‘__main__‘(if条件不成立)会报错

总结

以上是内存溢出为你收集整理的第十五天:模块全部内容,希望文章能够帮你解决第十五天:模块所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1190960.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存