python 导入模块 import

本文解析了Python中模块的导入方式及其对模块属性的影响。重点介绍了如何通过不同方式导入模块,并解释了这些导入方式如何影响模块的可见性和使用。此外,还提供了一些最佳实践建议。

导入模块是使用模块的属性是不同的

 

python文件目录结构如下,

其中module1.py 定义了函数func_module1

       module2.py 定义了函数func_module2

       module4.py 定义了函数func_module4

       module5.py 定义了函数func_module5

       submodule3.py定义了函数func_submodule3

testpy下的__init__.py文件代码如下:

import module1 as name_module1
import module2 as module4
from module3 import submodule3

一、模块属性

1、直接import testpy 

注意到testpy下包含的属性都是在__init__.py中出现的变量名。

(1)尽管module5.py在testpy文件夹下,但是testpy的没有module5属性,因为__init__.py中不包含变量module5

(2)

name_module1实际是module1模块;  对应__init__.py文件中的代码

import module1 as module name_module1

(3)

module4实际是module2,而不似乎testpy文件夹下的module4文件对于的模块; 对应__init__.py文件中的代码

import module2 as module4

(4)

submodule3并不在testpy文件夹下,但因为__init__.py文件中导入了,所以它也变成了testpy的属性

from module3 import submodule3

 

2、在testpy下面import module3

module3不包含其文件夹下的任意模块,因为__init__.py为空,不包含任何变量名

二、模块属性与模块导入

1、模块使用

使用模块时,“. ”表示获取对象的属性;testpy没有module5这个属性,所以不能调用其下的函数

2、模块导入
导入时, “.”表示模块路径

testpy下有文件module1.py   module5.py;所以能成功导入module1 module5及它们的函数

testpy下没有文件name_module1.py;所以无法导入name_module1,也无法通过name_module1导入module1中的函数

3、执行导入testpy下的模块后,testpy就包含了新导入的模块作为属性 

导入testpy时,会执行testpy下__init__.py的代码, 这就是testpy中属性存在的原因

4、导入模块时, 对于testpy若存在同名的属性,后导入的会覆盖前面导入的

三、导入时,建议直接导入需要用到的python文件中的函数或变量;这样能避免出错,不至于出现下面的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值