当前位置: 首页 > 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'

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

相关文章:

萌新学 Python 之模块管理

模块就是一个 python 代码文件,模块可以包含函数、类,可以提高代码复用率提高效率 python 模块主要分为三种: 1.内置模块:python 自带的模块,导入后可以直接使用,比如 import 模块名 2.第三方模块&#…...

6.3 - UART串口数据发送之中断

文章目录 1 实验任务2 系统框图3 软件设计 1 实验任务 本实验使用中断方式实现UART串口数据的连续发送。 2 系统框图 参见6.1。 3 软件设计 注意事项: 系统上电、程序下载后,此时TX FIFO虽然为空,但并不会触发空中断;空中断…...

Fisher信息矩阵(Fisher Information Matrix, FIM)与自然梯度下降:机器学习中的优化利器

Fisher信息矩阵与自然梯度下降:机器学习中的优化利器 在机器学习尤其是深度学习中,优化模型参数是一个核心任务。我们通常依赖梯度下降(Gradient Descent)来调整参数,但普通的梯度下降有时会显得“笨拙”,…...

Mysql基础-多表查询(详细版)

目录 一、表的关系类型与适用场景二、连接方式与使用场景三、易错点与注意事项四、总结 一、表的关系类型与适用场景 1. 一对一关系 场景:一个表的记录对应另一个表的唯一记录 案例:用户表 用户详情表 CREATE TABLE users (id INT PRIMARY KEY,name…...

港科大提出开放全曲音乐生成基础模型YuE:可将歌词转换成完整歌曲

YuE是港科大提出的一个开源的音乐生成基础模型,专为音乐生成而设计,专门用于将歌词转换成完整的歌曲(lyrics2song)。它可以生成一首完整的歌曲,时长几分钟,包括朗朗上口的声乐曲目和伴奏曲目。YuE 能够模拟…...

Python学习第十七天之PyTorch保姆级安装

PyTorch安装与部署 一、准备工作二、pytorch介绍三、CPU版本pytorch安装1. 创建虚拟环境2. 删除虚拟环境1. 通过环境名称删除2. 通过环境路径删除 3. 配置镜像源4. 安装pytorch1. 首先激活环境变量2. 进入pytorch官网,找到安装指令 5. 验证pytorch是否安装成功 四、…...

有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2

https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package...

什么是 Java 中的线程安全?

回答 Java 中的线程安全(Thread Safety)指的是在多线程环境下,当多个线程同时访问和操作共享资源(如对象、变量、数据结构等)时,能够保证程序的正确性,不会出现数据不一致、竞争条件&#xff0…...

计算机视觉(opencv-python)入门之图像的读取,显示,与保存

在计算机视觉领域,Python的cv2库是一个不可或缺的工具,它提供了丰富的图像处理功能。作为OpenCV的Python接口,cv2使得图像处理的实现变得简单而高效。 示例图片 目录 opencv获取方式 图像基本知识 颜色空间 RGB HSV CV2常用图像处理方…...

QT:Graphics View的坐标系介绍

在 Qt 的 Graphics View 框架中,存在三种不同的坐标系,分别是 物品坐标系(Item Coordinates)、场景坐标系(Scene Coordinates) 和 视图坐标系(View Coordinates)。这三种坐标系在图形…...

530 Login fail. A secure connection is requiered(such as ssl)-java发送QQ邮箱(简单配置)

由于cs的csdN许多文章关于这方面的都是vip文章,而本文是免费的,希望广大网友觉得有帮助的可以多点赞和关注! QQ邮箱授权码到这里去开启 授权码是16位的字母,填入下面的mail.setting里面的pass里面 # 邮件服务器的SMTP地址 host…...

vs2015下使用openmp

一 OPENMP 简介 OpenMP(Open Multi-Processing)是一个基于共享内存的并行编程API,通过编译器指令实现多线程并行开发。其核心特性包括: 1)通过简单的#pragma指令实现并行化 2)支持增量并行(逐步优化代码) 3)跨平台(Windows/Linux/macOS) 4)支持C/C++/Fortra …...

Docker 搭建 Gitlab 服务器 (完整详细版)

参考 Docker 搭建 Gitlab 服务器 (完整详细版)_docker gitlab-CSDN博客 Docker 安装 (完整详细版)_docker安装-CSDN博客 Docker 日常命令大全(完整详细版)_docker命令-CSDN博客 1、Gitlab镜像 # 查找Gitlab镜像 docker search gitlab # 拉取Gitlab镜像 docker pull gitlab/g…...

【万字长文】开源之播对话白鲸开源CEO郭炜--乐观主义的开源精神走得更远

本文为白鲸开源科技CEO郭炜1小时深度访谈全记录 来源于:开源之播」Episode15:对话郭炜–乐观主义的开源精神走得更远 大家好,我是郭炜,开源圈的“郭大侠”。作为 Apache 基金会的成员,我曾参与并孵化了多个开源项目,如…...

机试刷题_674. 最长连续递增序列【python】

674. 最长连续递增序列 class Solution:def findLengthOfLCIS(self, nums: List[int]) -> int:if not nums:return 0if len(nums)1:return 1left 0right len(nums)-1tmp []tmp.append(nums[0])res 0while left<right:if nums[left]<nums[left1]:tmp.append(nums[l…...

ipe网络安全

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 什么是IDS&#xff1f; IDS是英文"Intrusion Detection Systems"的缩写&#xff0c;中文意思是"入侵检测系统"。 大家还记得「网络安全」安…...

QT:QPen、QBrush、与图形抗锯齿的关联

QPen QPen 是 Qt 框架中用于定义绘图时使用的画笔属性的类。在使用 QPainter 进行 2D 绘图时&#xff0c;QPen 可以控制线条的外观&#xff0c;比如线条的颜色、宽度、样式&#xff08;如实线、虚线等&#xff09;、端点样式&#xff08;如方形端点、圆形端点等&#xff09;和…...

android keystore源码分析

架构 Android Keystore API 和底层 Keymaster HAL 提供了一套基本的但足以满足需求的加密基元&#xff0c;以便使用访问受控且由硬件支持的密钥实现相关协议。 Keymaster HAL 是由原始设备制造商 (OEM) 提供的动态加载库&#xff0c;密钥库服务使用它来提供由硬件支持的加密服…...

【12】智能合约开发入门

12-1 在线合约开发 Cloud IDE简介 基本框架 Cloud IDE是BaaS合约平台提供的在线合约开发工具 IDE是一个去中心化应用&#xff08;Dapp&#xff09;&#xff0c;通过JavaScript SDK直接与区块链平台通信&#xff0c;进行合约部署和调用 核心功能 合约工程管理 合约编辑与编…...

web安全——分析应用程序

文章目录 一、确定用户输入入口点二、确定服务端技术三、解析受攻击面 一、确定用户输入入口点 在检查枚举应用程序功能时生成的HTTP请求的过程中&#xff0c;用户输入入口点包括&#xff1a; URL文件路径 通常&#xff0c;在查询字符?之前的URL部分并不视为用户输入入口&am…...

Vivado FFT IP核避坑指南:从Matlab数据生成到FPGA验证的完整流程

Vivado FFT IP核实战避坑指南&#xff1a;从Matlab数据生成到FPGA验证的全链路解析 在FPGA信号处理领域&#xff0c;FFT&#xff08;快速傅里叶变换&#xff09;是实现频域分析的核心运算单元。Xilinx Vivado提供的FFT IP核虽然功能强大&#xff0c;但在实际工程落地过程中&…...

终极指南:如何快速配置Pushy实现Java APNs推送服务

终极指南&#xff1a;如何快速配置Pushy实现Java APNs推送服务 【免费下载链接】pushy A Java library for sending APNs (iOS/macOS/Safari) push notifications 项目地址: https://gitcode.com/gh_mirrors/pu/pushy Pushy是一个功能强大的Java库&#xff0c;专为发送A…...

【实战指南】融合DEM与水文分析的地表径流模拟与流域划分——以海河流域为例(含完整流程)

1. 从DEM到水文分析的核心逻辑 很多人第一次接触DEM数据时&#xff0c;会觉得这就是个普通的地形高程图。但当我用DEM预测出某次暴雨后的洪水淹没范围时&#xff0c;才真正理解到数字高程背后隐藏的水文密码。DEM数据就像地形的DNA&#xff0c;通过水文分析工具链的解码&#x…...

为什么要做 GeoPipeAgent底

指令替换 项目需求&#xff1a;将加法指令替换为减法 项目目录如下 /MyProject ├── CMakeLists.txt # CMake 配置文件 ├── build/ #构建目录 │ └── test.c #测试编译代码 └── mypass2.cpp # pass 项目代码 一&#xff0c;测试代码示例 test.c // test.c #includ…...

STM32WB55双核架构实战:基于CubeMX与IPCC/HSEM的蓝牙通信框架快速构建

1. STM32WB55双核架构设计解析 第一次拿到STM32WB55开发板时&#xff0c;我盯着芯片型号看了半天——这个"双核"到底该怎么用&#xff1f;后来在项目里摸爬滚打才发现&#xff0c;理解它的双核分工是开发蓝牙应用的关键。这颗芯片的M4核和M0核就像公司里的两个部门&a…...

从零备份到量产部署:RK3588文件系统迁移全流程指南(含Ubuntu/Debian/麒麟系统适配)

从零备份到量产部署&#xff1a;RK3588文件系统迁移全流程指南&#xff08;含Ubuntu/Debian/麒麟系统适配&#xff09; 1. 企业级文件系统迁移的核心挑战 在RK3588芯片组的量产部署中&#xff0c;文件系统迁移往往成为最耗时的环节。我曾亲历一个汽车电子项目&#xff0c;团队花…...

新手避坑指南:用URDF给机械臂建模时,origin和inertial参数到底该怎么算?

机械臂URDF建模实战&#xff1a;origin与inertial参数计算完全指南 当你在Rviz中看到机械臂模型"飘在空中"或在Gazebo仿真时出现诡异抖动&#xff0c;八成是origin和inertial参数设置出了问题。这两个看似简单的参数&#xff0c;实则是URDF建模中最容易踩坑的"暗…...

机器学习40篇-开篇词-打通修炼机器学习的任督二脉

分享一个大牛的人工智能教程。零基础&#xff01;通俗易懂&#xff01;风趣幽默&#xff01;希望你也加入到人工智能的队伍中来&#xff01;请轻击人工智能教程​https://www.captainai.net/troubleshooter 在新进展层出不穷的今日&#xff0c;机器学习依然占据着人工智能的核心…...

千问3.5-9B人工智能导论:用模型讲解机器学习与深度学习核心概念

千问3.5-9B人工智能导论&#xff1a;用模型讲解机器学习与深度学习核心概念 1. 当AI成为你的知识导师 想象一下&#xff0c;你面前坐着一位既懂技术又擅长教学的AI导师。它不仅掌握最前沿的人工智能知识&#xff0c;还能用生活中的例子帮你理解复杂概念。这就是千问3.5-9B作为…...

手机号逆向查询QQ号:Python开发者的高效查询解决方案

手机号逆向查询QQ号&#xff1a;Python开发者的高效查询解决方案 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾在工作中需要快速验证手机号与QQ号的绑定关系&#xff1f;面对批量数据时&#xff0c;手动查询不仅耗时耗力&…...