python(day024——模块)

本文深入探讨了Python中模块和包的概念,包括如何创建、引用模块,解释了Pythonpath环境的作用,以及模块与包的区别。同时,文章还介绍了import语句的使用方法,if __name__=='__main__'的含义,模块的重新加载,以及globals()和locals()函数的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建、引用自己的模块

相同文件目录下:

引用,调用:import(一个python文件就是一个模块,在交互模式下,os.getcwd()的路径必须和这个模块文件的路径处于同一级,否则在import的时候会找不到),文件模式也可以调用。

pythonpath环境,存的是各种目录名称,如果python文件在pythonpath的某个文件夹下,那么import 的时候是可以自动找到的。
如果找不到,你需要用import sys。
sys.path.append("你的模块文件所在的绝对目录")
import 你自己写的包名/模块名

>>> import test
>>> print(test.x)
100
>>> print(test.add(1,2))
3
#python path:1 会在当前目录下进行查找import 的模块文件
#2去pythonpath下面的所有路径下,去找import 的模块文件
#3 去python的安装路径C:\Python36\Lib\site-packages的目录下去找
如果1/2/3都没有找到,则报没有这个模块

找不到的时候,你可以采取三个动作:
1 把模块文件和当前执行的python文件放到同一个文件夹下后,在执行
2 或者把模块文件的所在绝对路径添加到操作系统的pythonpath的环境变量中
3 或者
import sys
sys.path.append("你的模块文件所在的绝对目录")
import 你自己写的包名/模块名

2.包

包的查找方式和模块是一样的。

包和模块的区别:1.模块是个python文件。 2.包是个目录,目录里必须有__init__.py文件。3.包下面可以有子包和模块。

3.import XX  和from XX import *

把XX里面的全部变量、函数、类,引入到当前的命名空间当中

4.if __name__ == '__main__':

https://blog.youkuaiyun.com/longintchar/article/details/87120496

5.重新加载模块reload

reload()需要从imp中引入,表示重新导入已导入过的模块。

6.globals()和locals()函数

根据调用地方的不同,globals()和locals()函数可被用来返回全局和局部命名空间里的名字。 如果在函数内部调用locals(),返回的是所有能在该函数里访问的命名。 如果在函数内部调用globals(),返回的是所有在该函数里能访问的全局名字。 两个函数的返回类型都是字典。所以名字们能用keys()函数摘取。

>>> a=1000
>>> b=[1,2,3]
>>> def c():
...     x=1
...     y=2
...     print(locals())
...     print(globals())
...
>>> c()
{'x': 1, 'y': 2}
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_fr
ozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__
': <module 'builtins' (built-in)>, 'a': 1000, 'b': [1, 2, 3], 'c': <function c at 0x0000
01C107782AF8>}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值