11.python基础学习-模块与包、目录与包的区别,导入内置模块、导入自定义模块

修订日期 内容
2021-2-15 初稿

模块

简述

: 什么是模块呢?简单来说一个.py结尾的文件就是一个模块,模块里面的内容可以包括0到多个常量,函数、类、属性等。在java中一个文件一般只有一个类,这一点与Python区别较大,所以值得我们单独去研究。

目录与包的区别

在Python中有包与目录的区别,从表面来说包下面一定有一个__init__.py文件,而目录没有,在PyCharm中的显示也有区别
在这里插入图片描述
目录与包下均可以创建.py文件与子目录子包,并且之间都能相互import。之前看过其他博客说是python3.0之前目录对import
相关模块有限制,而python3.0之后没有区别了(这里本人没有仔细研究),就目前看来唯一的区别就在于__init__.py文件有的功能就是目录与包package的区别。之后再说明__init__.py文件的作用。

包(模块)的导入

在java中我们往往习惯说导包,在python中其实是导入的模块。

导入内置模块

1.例如导入系统包

# 导入内置模块math
import math
print(math.floor(3.9))  # 3

2.导入指定模块并使用别名

# 导入内置模块math
import  math as m
print(m.ceil(3.1))  # 4

3.导入模块中的特定方法(函数)/变量/类

# 指定了floor函数,则可以直接使用floor方法,且不能使用math其他的方法
from math import floor
print(floor(3.9))  # 3

4.导入模块中的特定方法(函数)/变量,并指定别名

from math import floor as f
print(f(3.9))  # 3

导入自定义模块

分别创建如下python文件
/testdir/package/package_demo.py

#  /testdir/package/package_demo.py 文件内只有一个方法package_m()
def package_m():
    print('测试包中的方法')

/testdir/testdir_01.py

目的:在testdir_01.py 模块中导入package_demo.py模块
导入方式一

import testdir.package.package_demo as testpack
testpack.package_m()

导入方式二
在Pycharm中 鼠标选中package包右键-> Mark Directory as -> Sources Root则可以直接导入

import package_demo
package_demo.package_m()

总结

模块类型 导入方式
内置模块 import 模块 import math
内置模块 import 模块 as 别名 import math as m
内置模块 from 模块 import 函数/变量/类 from math import floor
内置模块 from 模块 import 函数/变量/类 as 别名 from math import floor as f
自定义模块 import [完整包路径].模块 as 别名 import testdir.package.package_demo as testpack
自定义模块 import [完整包路径].模块 import testdir.package.package_demo
自定义模块 from [完整包路径].模块 import 函数/变量/类 from testdir.package.package_demo import package_m
自定义模块 自定义模块做为Sources Root import package_demo

猜你喜欢

转载自blog.csdn.net/weixin_48470176/article/details/113813020