2.82【模块与包】

模块与包

什么是模块

模块就是已经构建好能够实现特定功能的代码的.py文件,在需要实现相应功能的时候可以直接调用该模块的函数或变量

模块化的好处

1.方便维护,代码定位准确

2.内部的变量,相互不影响,方便单个模块功能调试、升级,方便模块间组合、分解

3.方便团队开发,多人协作互不干扰

4.模块可以复用

模块的来源

1.自定义:由自己构建的,常用于实现该项目特定需求的模块

2.内置:标准库模块:Python 提供了一组标准库模块,这些模块是随着 Python 解释器一起安装的,可以直接在代码中使用。例如,mathdatetimeos,random

3.第三方:需要使用pip下载的由他人编写好的模块,例如爬虫中常用的requests

模块的使用

导入模块

使用from…import…导入到当前文件

import math# 或者仅导入特定函数
from datetime import datetime, timedelta

调用

直接使用,或者用.来使用该模块中的函数

import mathprint(math.sqrt(16))  # 使用 math 模块中的 sqrt() 函数计算平方根

模块的重命名

一般为了使模块更加简短、或者避免重名,我们会用as来为模块重命名,使用方法也很简单:

import math as m  # 将 math 模块重命名为 mprint(m.sqrt(16))  # 使用重命名后的名称调用模块中的函数

什么是包

包(Package)是一种用于组织和管理 Python 模块的方式。它是一个包含了多个模块和子包的文件夹。

包的结构

package_name/ # 包的根目录 __init__.py # 包的初始化文件 module1.py # 模块1 module2.py # 模块2 subpackage/ # 子包 __init__.py # 子包的初始化文件 submodule1.py # 子模块1 submodule2.py # 子模块2

其中package_name是包的根目录,根目录下包含了__init__.py文件用于标识这是一个包,并且在其中执行初始化操作

相对路径与绝对路径

  • 相对路径(Relative Path):相对路径是基于当前工作目录或当前文件所在位置的路径表示。它描述了如何从一个位置到达另一个位置的路径,而不涉及完整的文件系统路径。

    相对路径可以使用特殊符号 .(表示当前目录)和 ..(表示上级目录),以及文件或目录名来构建路径。相对路径是相对于某个参考点的路径。

    示例:./subfolder/file.txt 表示当前目录下的子目录 subfolder 中的 file.txt 文件。

  • 绝对路径(Absolute Path):绝对路径是一个完整的路径,从文件系统的根目录开始,描述了从根目录到目标文件或目录的完整路径。

    绝对路径包括文件或目录的顶级目录、各级子目录以及文件或目录名。绝对路径提供了从根目录到目标位置的详细路径信息。

    示例:C:\Users\username\Documents\file.txt 是一个 Windows 系统中的绝对路径。

    import os# 当前工作目录
    current_dir = os.getcwd()
    print("当前工作目录:", current_dir)
    # 当前工作目录: /home/user/myproject# 相对路径
    relative_path = "subfolder/file.txt"
    absolute_path = os.path.join(current_dir, relative_path)
    print("相对路径:", relative_path)
    # 相对路径: subfolder/file.txtprint("相对路径解析为绝对路径:", absolute_path)
    # 相对路径解析为绝对路径: /home/user/myproject/subfolder/file.txt# 绝对路径
    absolute_path = "/Users/username/Documents/file.txt"
    file_name = os.path.basename(absolute_path)
    dir_name = os.path.dirname(absolute_path)
    print("绝对路径:", absolute_path)
    # 绝对路径: /Users/username/Documents/file.txtprint("文件名:", file_name)
    # 文件名: file.txtprint("目录名:", dir_name)
    # 目录名: /Users/username/Documents
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/223813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

统信UOS上图形化配置系统和应用代理

原文链接:统信UOS上图形化配置系统和应用代理 hello,大家好啊,今天我要给大家介绍的是在统信UOS操作系统上如何通过图形化界面配置系统代理和应用代理。在许多公司的内网环境中,直接访问互联网可能受到限制,但通常会提…

智慧工地源码:为施工企业提供专业落地的解决方案

智慧工地利用物联网、大数据、AI等核心技术,实时采集现场数据,自动分析,精准分析、智能决策、科学评价,形成一套数据驱动的新型管理模式。为施工企业提供生产提效、安全可控、成本节约的项目管理解决方案,提升项目部管…

关于linux 磁盘占用排查问题

1.关于磁盘 查看整体磁盘占用大小 df -h 2. 先排除mysql 数据大小 查询库的大小 SELECT table_schema AS "Database", ROUND(SUM(data_length index_length) / 1024 / 1024, 2) AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema…

理解Mysql索引原理及特性

作为开发人员,碰到了执行时间较长的sql时,基本上大家都会说”加个索引吧”。但是索引是什么东西,索引有哪些特性,下面和大家简单讨论一下。 1 索引如何工作,是如何加快查询速度 索引就好比书本的目录,提高数…

【力扣】19. 删除链表的倒数第 N 个结点

19. 删除链表的倒数第 N 个结点 相比于昨天,感觉刷题越来越轻松了~ 我进步了! 以后刷题力度要加快了,因为我报了蓝桥杯!加油~ 法一:计算链表长度 思路: 首先用个函数来计算出该链表的长度,然…

C语言之⽂件操作

一为啥需要文件? 如果没有⽂件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进⾏持久化的保…

【个人版】SpringBoot下Spring-Security自定义落地篇【三】

背景: 前两篇文章将spring-security的设计架构、核心类、配置及构建过程基本过了一遍,其实很偏理论,如果对源码不感兴趣或项目使用不深,基本可以忽略,毕竟完全理解可能也不会用到,时间长也忘掉了。但是如果…

C语言->动态内存管理

系列文章目录 文章目录 前言 ✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:橘橙黄又青_C语言,函数,指针-CSDN博客 目的:学习malloc&#xff0c…

动手学深度学习-注意力机制

10.1注意力提示 自主性注意力机制 有意识的注意力机制。非自主性注意力机制 无意识的注意力机制。 小结: 人类的注意力是有限的,有价值和稀缺的资源。受试者使用非自主性和自主性提示有选择的引导注意力,前者基于突出性,后者则依赖于意识。…

Android多国语言翻译 国际化

语言目录详细对应关系 Arabic, Egypt (ar-rEG) —————————–阿拉伯语,埃及 Arabic, Israel (ar-rIL) ——————————-阿拉伯语,以色列 Bulgarian, Bulgaria (bg-rBG) ———————保加利亚语,保加利亚 Catalan, Spain (ca-r…

24年五年制专转本招生院校有可能发生变动

据悉,24年五年制专转本院校可能将发生改变,南京传媒学院有可能停止招生 将新增一所招生大学:南京航空航天大学金城学院 南京航空航天大学金城学院始建于1999年,是南京航空航天大学联合社会力量创办的独立学院。学校位于江苏省南京…

【Python百宝箱】挑战网络分析:NetworkX、iGraph、Graph-tool、Snap.py 和 PyGraphviz详细评测

五大 Python 网络分析工具库大揭秘:功能、性能对比 前言 随着信息时代的来临,网络结构的分析变得日益重要。在 Python 生态系统中,有许多强大的库可用于网络分析,如 NetworkX、iGraph、Graph-tool、Snap.py 和 PyGraphviz。这五…

Selenium IED-安装及简单使用

本文已收录于专栏 《自动化测试》 目录 背景介绍优势特点安装步骤录制脚本总结提升 背景介绍 Selenium 通过使用 WebDriver 支持市场上所有主流浏览器的自动化。 Webdriver 是一个 API 和协议,它定义了一个语言中立的接口,用于控制 web 浏览器的行为。 每…

WPF中DataGrid设置默认选中行

1、DataGrid命名为planDataGrid <DataGrid ItemsSource"{Binding PlanList}" SelectedItem"{Binding SelectedItem}" x:Name"planDataGrid" AutoGenerateColumns"False" CanUserAddRows"False" GridLinesVisib…

luttuce(RedisTempate)实现hash expire lua脚本

话不多说先放脚本&#xff1a; local argv ARGV local length #argv if length > 0 then local unpackArgs {} for i 1, length - 1 dotable.insert(unpackArgs, argv[i]) end if redis.call(exists, KEYS[1]) 1 thenredis.call(del, KEYS[1])redis.call(hset, KEYS[…

成都工业学院Web技术基础(WEB)实验二:HTML5表格、表单标签的使用

写在前面 1、基于2022级计算机大类实验指导书 2、代码仅提供参考&#xff0c;前端变化比较大&#xff0c;按照要求&#xff0c;只能做到像&#xff0c;不能做到一模一样 3、图片和文字仅为示例&#xff0c;需要自行替换 4、如果代码不满足你的要求&#xff0c;请寻求其他的…

报表生成器Stimulsoft用户手册:预览中具有动态数据排序的报告

Stimulsoft Reports 是一款报告编写器&#xff0c;主要用于在桌面和Web上从头开始创建任何复杂的报告。可以在大多数平台上轻松实现部署&#xff0c;如ASP.NET, WinForms, .NET Core, JavaScript, WPF, Angular, Blazor, PHP, Java等&#xff0c;在你的应用程序中嵌入报告设计器…

快来看!苹果开放侧载,对开发者来说是祸是福?

不知道你们听说了没有&#xff1f; 苹果公司在向SEC提供的2023年10-K文件中明确表现&#xff0c;伴随着欧盟委员会《数字市场法案》的正式落地将不得不在苹果手机上开放“应用侧载”功能。 简单来说&#xff0c;就是你的App可以不用在App Store里下载&#xff0c;而是可以通过…

【深度学习目标检测】六、基于深度学习的路标识别(python,目标检测,yolov8)

YOLOv8是一种物体检测算法&#xff0c;是YOLO系列算法的最新版本。 YOLO&#xff08;You Only Look Once&#xff09;是一种实时物体检测算法&#xff0c;其优势在于快速且准确的检测结果。YOLOv8在之前的版本基础上进行了一系列改进和优化&#xff0c;提高了检测速度和准确性。…

SQL Server数据库使用T-SQL语句简单填充

文章目录 操作步骤&#xff1a;1.新建数据库起名RGB2.新建表起名rgb3.添加三个列名4.点击新建查询5.填入以下T-SQL语句&#xff0c;点击执行&#xff08;F5&#xff09;6.刷新之后&#xff0c;查看数据 操作环境&#xff1a; win10 Microsoft SQL Server Management Studio 20…