当前位置: 首页 > news >正文

萌新学 Python 之模块管理

模块就是一个 python 代码文件,模块可以包含函数、类,可以提高代码复用率提高效率

python 模块主要分为三种:

1.内置模块:python 自带的模块,导入后可以直接使用,比如 import 模块名

2.第三方模块:通过 pip 工具安装后才可以使用,比如 pip install numpy

3.自定义模块:自己写的代码,包括类和函数,文件名就是模块名,使用方式 import 模块(文件名)

导入模块的方式:import 模块名

使用模块中的函数:模块名.函数

举例:导入 math 数学运算模块

可以通过 dir 查看模块中的函数

math 模块中常用的函数有:

math.ceil() 向上取整、math.floor() 向下取整、math.pow(x, y) 幂次方、math.sqrt() 开根号

import math                        # 数学运算
print(len(dir(math)), dir(math))   # 查看模块中的函数# 向上取整
print(math.ceil(0.9))              # 1
# 向下取整
print(math.floor(0.9))             # 0
# 幂次方
print(math.pow(2, 2))              # 4.0
# 开根号
print(math.sqrt(9))                # 3.0

从这个模块下导入所有函数:from 模块 import *

从模块中导入指定的函数,可以直接使用:from 模块 import 函数

如果函数名特别长,可以通过取别名的方式来导入:from 模块 import 函数 as 别名

__name__ 为所有模块的内置函数,主要用来控制程序的运行方式

if __name__ == '__main__':pass

当 .py 文件被其他文件当作模块导入时,__name__ 属性自动设置为模块名(当前文件名)

当 .py 文件被当作脚本运行时,__name__ 属性自动设置为 __main__

calc.py 文件:

def add(x, y):return x + ydef sub(x, y):return x - yif __name__ == '__main__':print(add(1, 2), sub(2, 1))           # 3 1

invoke.py 文件:

from demo.demo import calcprint(calc.add(2, 1), calc.sub(1, 2))    # 3 -1

包就是一个目录,存放多个 python 代码文件的目录,使用方式:包.模块

包的所有目录下有一个 __init__.py 文件,该文件可以为空,也可以用来初始化模块

# 初始化模块
from .calc import add, sub__all__ = 'add', 'sub'

模块和目录名不要使用特殊字符

http://www.lryc.cn/news/543217.html

相关文章:

  • 6.3 - UART串口数据发送之中断
  • Fisher信息矩阵(Fisher Information Matrix, FIM)与自然梯度下降:机器学习中的优化利器
  • Mysql基础-多表查询(详细版)
  • 港科大提出开放全曲音乐生成基础模型YuE:可将歌词转换成完整歌曲
  • Python学习第十七天之PyTorch保姆级安装
  • 有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
  • 什么是 Java 中的线程安全?
  • 计算机视觉(opencv-python)入门之图像的读取,显示,与保存
  • QT:Graphics View的坐标系介绍
  • 530 Login fail. A secure connection is requiered(such as ssl)-java发送QQ邮箱(简单配置)
  • vs2015下使用openmp
  • Docker 搭建 Gitlab 服务器 (完整详细版)
  • 【万字长文】开源之播对话白鲸开源CEO郭炜--乐观主义的开源精神走得更远
  • 机试刷题_674. 最长连续递增序列【python】
  • ipe网络安全
  • QT:QPen、QBrush、与图形抗锯齿的关联
  • android keystore源码分析
  • 【12】智能合约开发入门
  • web安全——分析应用程序
  • Wpf 之Generic.xaml
  • VidSketch:具有扩散控制的手绘草图驱动视频生成
  • 解锁C# XML编程:从新手到实战高手的蜕变之路
  • kafka-leader -1问题解决
  • 超大规模分类(四):Partial FC
  • uniapp 小程序如何实现大模型流式交互?前端SSE技术完整实现解析
  • 因子分析详解:从理论到MATLAB实战
  • 【组态PLC】基于三菱西门子S7-200PLC和组态王液料混合系统组态设计【含PLC组态源码 M016期】
  • js:根据后端返回的数组取出每一个数组的keyword字段然后拼接成一个逗号分隔的字符串
  • 基于大模型的肺纤维化预测及临床方案研究报告
  • 7. 【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--Ocelot 网关--路由