对import的理解,python中的package和module概念

本文深入解析了Python中模块(module)和包(package)的概念,详细介绍了如何通过import语句导入和使用模块中的函数、类及变量。同时,文章还演示了从包中导入模块和对象的具体方法,并提供了实例代码。

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

module就是一个.py文件,自己写的一个.py文件也可以作为一个module被别的程序使用。

module中的任何一个对象(即函数function,类class,变量variable等)都可以被导入使用。

import的常见使用

直接使用import

  • 格式: import module
import module1

# 定义三个变量来指向module1里面的对象
func = module1.function_in_module1
cls = module1.Class_in_module1()
vr = module1.variable_in_module1

# 打印出来看看效果
print('-' * 60)  # 打印个分割线
func()
print('-' * 60)
print(cls)
print('-' * 60)
print(vr)
复制代码

运行后输出

------------------------------------------------------------
I'm a function in module 1
------------------------------------------------------------
I'm a class in module 1
------------------------------------------------------------
I'm a Variable_in_module 1
复制代码

from 模块 import 对象(函数,类,变量等等)

## 函数
from module1 import function_in_module1

function_in_module1()
复制代码

运行后输出

I'm a function in module 1
复制代码

## 类
from module1 import Class_in_module1

a = Class_in_module1()
print(a)
复制代码

运行后输出

I'm a class in module 1
复制代码

## 变量
from module1 import variable_in_module1

a = variable_in_module1
print(a)
复制代码

运行后输出

I'm a Variable_in_module 1
复制代码

from 包(package).模块(module) import 对象(object)

在python中可以通过构建包(package)来组织很多.py文件模块

构建的方法就是在放有.py文件的文件夹下,创建__init__.py的文件,文件内容可以为空。

这样,这个文件夹在python眼里就变成了一个包。这个包的名字就是这个文件夹的名字。

在下面的测试中,我构建的包的结构是:

package
|
|-- __init__.py
|
|-- module2.py
|
|-- subpackage1
|
|---- __init__.py
|
|---- module1.py
|
|-- subpackage2
|
|---- __init__.py
|
|---- module_in_subpackage2.py
复制代码

# 比如
from package.module2 import func

func()
复制代码

运行后输出

imported successfully
复制代码

# 来个超级长的
# from package.subpackage.module import object
from package.subpackage2.module_in_subpackge2 import a_variable

print(a_variable)
复制代码

运行后输出

I'm a variable in subpackage2's module
复制代码

from 包(package) import 模块(module)

from package.subpackage2 import module_in_subpackge2

a = module_in_subpackge2.a_variable
print(a)
复制代码

运行后输出

I'm a variable in subpackage2's module
复制代码

from package import subpackage

可以导入,但是导入的并不是__init__.py里面的东西,而是包里包含的模块

from package import subpackage2

print(subpackage2.module_in_subpackge2.a_variable)
复制代码

运行后输出

I'm a variable in subpackage2's module
复制代码

用 as 给导进来的东西起个好写的别名

from package.subpackage2 import module_in_subpackge2 as haha

a = haha.a_variable  # 注意看这
print(a)
复制代码

运行后输出

I'm a variable in subpackage2's module
复制代码

总结一哈

就是大包(package)可以组织一群小包(subpackages),小包可以组织小小包,包里不仅可以有包还可以有模块(module)。

其实包就是装有__init__.py的文件夹,模块就是一个.py文件,我们最终的目的就是用import导入进来使用它内部的对象(函数,类,变量等等)

小笔记,今天好好理了一下这个思路。建议不太会的同学可以去https://github.com/Edwardlin-zlt/Notebook/tree/master/%E5%AF%B9import%E7%9A%84%E7%9B%B8%E5%85%B3%E7%90%86%E8%A7%A3下载我构造的包,跟着我的代码在jupyter上敲一敲,应该就能懂了吧。

我就是个自学python的新手,求大神带路。如果有理解错误的地方请指出~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值