Python基础之模块和包

一、模块

模块(Module):它是一个Python文件,以.py结尾,模块中可以定义函数、类以及变量,

1.1 模块导入

1.1.1 导入方式一(import …)

  • 语法
# 1.导入模块
import 模块名
# 2.调用功能
模块名.功能名()
  • 体验
import math
# 向上取整
print(math.ceil(1.25))  # 2

# 向下取整
print(math.floor(2.25))  # 2

1.1.2 导入方式二(from … import …)

  • 语法
from 模块名 import 功能1, 功能2...
  • 体验
from math import sqrt
# 开平方根,结果是浮点型
print(sqrt(4))  # 2.0

1.1.3 导入方式三(from 模块名 import *)

  • 语法
from 模块名 import *
from random import *
# 返回0~1的随机小数,左闭右开
print(random())
# 随机获取指定范围内的数字
print(randrange(0, 10))

1.1.4 定义别名as

  • 语法
# 模块定义别名
import 模块名 as 别名
# 功能定义别名
from 模块名 import 功能 as 别名

1.2 自定义模块

# 模块名称:my_module.py
def say_hello(name):
    print("Hello!", name)
# 导入模块
import my_module
# 引用模块中的函数say_hello
my_module.say_hello("jack")

1.3 模块搜索路径

当导入一个模块,Python解析器对模块位置的搜索顺序是:
1.当前目录
2.如果不在当前目录,Python则搜索在PYTHONPATH下的所有目录
3.如果都找不到,则会查看默认目录。

模块搜索路径存储在system模块的sys.path变量中,变量中包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

1.4 __ all__

如果一个模块文件有__all__变量,当使用 from xxx import * 导入,只能导入这个列表中的元素。

  • my_model 模块代码
__all__ = ['test1']


def test1():
    print('test1')


def test2():
    print('test2')
  • module_demo代码
from my_module import *
test1()

1.5 主函数

  • 每个模块的定义中都包括一个记录模块名称的变量_name_ ,如果在当前模块中运行程序,则它的值为_main_,如果该模块被其他模块调用,则它的值为模块名称。
# my_module.py
def test1():
    print('test1')


def test2():
    print('test2')


if __name__ == '__main__':
    test1()

二、包

包将有联系的模块组织到一起,即放到同一文件夹下,在该文件夹下必须存在__init__.py文件,它是包的标识文件。

2.1 新建包

在这里插入图片描述
在这里插入图片描述

2.2 导入包

2.2.1 方法一

# 导入
import 包名.模块名
# 调用功能
包名.模块名.功能
import package.my_module1
package.my_module1.info_print()
#  print('my_module1')

2.2.2 方法二

注意:必须在__init__.py文件中添加__all__ = [ ],控制允许导入的模块列表。

from 包名 import *
模块名.功能
# __init__.py
__all__ = ['my_module1', 'my_module2']
from package import *
my_module1.info_print()
my_module2.info_print()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数产第一混子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值