Java开发者的Python快速进修指南:自定义模块及常用模块

news2024/11/28 2:37:24

自定义模块

我来举一个在Java开发中常用的开发方式作为例子。在我们进行项目开发时,通常会在项目的结构中创建一个util包,用于存放一些工具类。同样,Python也可以采用类似的方式来组织代码结构,让大家更容易理解。

在同目录下

如果你想在在同目录下创建一个nameUtil.py文件,并不想另外创建一个util包的话,也可以,我们可以演示一下。以下是nameUtil.py的简单内容:

name = "xiaoyu"

def getName(name):
    print(f"我的名字是{name}")

在执行的Python文件(main.py)中,可以直接使用import语句来引入其他模块。例如:

import nameUtil

name = "xiaoyu" 
nameUtil.getName(nameUtil.name) # 可将nameUtil.name替换成name

可以使用from..import语句优化一下上面的内容:

from nameUtil import getName

getName("xiaoyu")

这种情况是最简单的。当你想要导入某个包的时候,你可能会想,为什么我可以直接导入,而不需要在同目录下引入各种第三方包呢?实际上,这和Java是一样的。Python也有固定的包扫描路径。比如,当我们导入第三方包时,Python会搜索第三方库的安装路径。这些路径通常是通过包管理工具(如pip)安装的。

不在同一目录下

如果我们将一些Python工具类单独放在一个名为"util"的目录中,这样可以更好地组织代码。这种做法符合规范,并且让我们的代码更易读、易维护。下面我将演示一下如何使用这种目录结构,唯一的区别是,你需要使用"from"语句来导入工具类,而不能简单地使用"import"语句。

目录结构如下:

image

main.py内容如下:

from utils import nameUtil

name = "xiaoyu"
nameUtil.getName(nameUtil.name) # 可将nameUtil.name替换成name

这就很像我们正常开发的模式了,因为在开发过程中,我们通常需要将模块按照不同的功能进行分级,并创建相应的包目录结构。这样,我们就可以像上面那样编写代码。如果有多层包目录,我们可以继续按照相同的方式导入模块,例如:from java.utils import nameUtil。感觉就像是回到了熟悉的开发环境,我们可以开始进行正常的开发工作了。

常用模块

我们将举一些在开发Java工作中常用的工具类,这些工具类同样适用于Python编程语言。

time

time模块:提供了与时间相关的函数和类,可以用来获取当前时间、格式化时间、计时等操作。在加密接口中,经常需要使用时间戳场景来确保数据的安全性。

获取当前时间戳:current_time = time.time()

将时间戳转换为可读时间:readable_time = time.ctime(current_time)

格式化时间:formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(current_time))

程序休眠一定时间:time.sleep(2) # 程序暂停2秒

datetime

datetime模块是Python中提供的一个功能强大的模块,它包含了许多与日期和时间相关的函数和类,可以方便地进行日期和时间的计算、格式化等操作。在很多场景下,比如列表查询等,我们经常会用到日期模块的功能。

获取当前日期时间:current_datetime = datetime.datetime.now()

格式化日期时间:formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S")

计算两个日期之间的差值:time_difference = datetime.datetime(2022, 1, 1) - datetime.datetime(2021, 1, 1)

json

json模块在Python中提供了处理JSON数据的函数和类,它可以被广泛地应用于解析和生成JSON数据。在工作中,我们经常会遇到需要处理JSON数据的情况,所以我想详细解释一下它的用法。然而,需要注意的是,在某些特定的情况下,比如与微信开放者平台进行接口对接时,数据的传输形式可能会是XML格式。

在我之前的工作经历中,就遇到过这样的情况,在与微信开放者平台对接时我也踩过一些坑,需要特别注意。

解析JSON字符串:

json_data = '{"name": "xiaoyu", "age": 30}'
parsed_data = json.loads(json_data)

# 获取key的value值
name = parsed_data["name"]
age = parsed_data["age"]
print(name)  # 输出:xiaoyu
print(age)  # 输出:30

# 添加新的键值对
parsed_data["city"] = "China"

print(parsed_data)

生成JSON字符串:data = {"name": "John", "age": 30} json_data = json.dumps(data)这里的data是对象,变量json_data就是一个包含了"name"和"age"键值对的JSON格式字符串。

os

os模块:提供了与操作系统相关的函数和类,可以用来进行文件和目录操作、进程管理等操作。如果你经常需要进行文件操作,不管是在学习还是工作中,了解和掌握os模块都是非常重要的。

获取当前工作目录:current_directory = os.getcwd()

创建目录:os.mkdir("new_directory")

判断文件或目录是否存在:exists = os.path.exists("file.txt")

sys

sys模块:提供了与Python解释器和系统相关的函数和变量,可以用来获取命令行参数、退出程序等操作。这在开发中非常有用,尤其是当我们需要与系统进行交互时。

获取命令行参数:arguments = sys.argv

退出程序:sys.exit()

总结

在导入包方面,两者都使用import语句,但是Python没有类路径的概念,直接使用文件名来导入模块。我们还讨论了自定义模块的创建和使用,以及在不同目录下如何组织代码结构。此外,我们介绍了一些常用的Python模块,包括time、datetime、json、os和sys,它们在开发中非常实用。希望今天的课程对大家有所帮助!

文章转载自:努力的小雨

原文链接:https://www.cnblogs.com/guoxiaoyu/p/17842859.html

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

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

相关文章

数据中台具体是怎么解决数据孤岛的?_光点科技

在数字化时代,数据已成为企业的核心资产。然而,由于历史遗留问题、部门壁垒等因素,很多企业面临着“数据孤岛”的问题。数据孤岛是指在一个组织内,数据被分散在不同的系统中,彼此隔离,不能有效整合和利用。…

GWAS 分析模型 | FaST-LMM

GWAS 分析模型 | FaST-LMM FaST-LMM (Factored Spectrally Transformed Linear Mixed Models) 是一个用于进行全基因组关联分析(GWAS)的模型。与标准混合线性模型相比,FaST-LMM 通过对遗传相似性矩阵进行单次谱分解来减少计算资源消耗并提升运…

智慧城市交通大屏|助力解决城市交通问题

2017年起,数字孪生连续三年被Gartner列入“未来科技十大趋势”,由此可见数字孪生技术正屹立在数字化发展的风口之中。 数字孪生作为物理世界的数字映射,将流程、物体的信息利用数字技术实时映射到系统中,可以对某个设备、某个企业…

vivado产生报告阅读分析25-复杂性报告

对于顶层设计和 / 或包含 1000 个以上叶节点单元的层级单元 , 复杂性报告会显示每个叶节点单元类型的“ Rent Exponent” ( Rent 指数 ) 、“ Average Fanout ” ( 平均扇出 ) 和分布。 Rent 指数是指在使用最小割 …

Ubuntu+Tesla V100环境配置

系统基本信息 nvidia-smi’ nvidia-smi 470.182.03 driver version:470.182.03 cuda version: 11.4 查看系统体系结构 uname -aUTC 2023 x86_64 x86_64 x86_64 GNU/Linux 下载miniconda https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/?CM&OA https://mi…

无效的目标发行版: 21 和springboot爆错

目录 问题描述 原因分析: 问题描述 springboot爆红 调整一下这个:把这里的version调低一点应该就可以了 无效的目标发行版: 21 调整一下这个把这里的Java version调整一下,我是调整到1.8(其他没有试过) 原因分析&a…

数据结构 / day05 作业

1. 双向循环链表作图 双向循环链表节点创建 双向循环链表节点头部插入 双向循环链表节点尾插 双向循环链表节点头部删除 双向循环链表节点尾部删除 2.思维导图

入侵redis之准备---VMware安装部署kail镜像服务器【详细包含云盘镜像】

入侵redis之准备—VMware安装部署kail镜像服务器【详细包含云盘镜像】 kail是一个很好玩的操作系统,不多说了哈 下载kail镜像 kail官网:https://www.kali.org/get-kali/#kali-platforms 百度云盘下载: 链接:https://pan.baidu.com/s/1PRjo…

用Zoho Projects项目管理系统进行直播管理的策略与方法

使用Zoho Projects项目管理系统进行直播管理。优化团队直播流程,明确职责,增进默契!助力团队一丝不苟,确保无懈可击的直播效果。汲取经验,固化流程,多角度剖析关键数据,深入复盘,便于…

C++标准模板库 STL 简介(standard template library)

在 C 语言中,很多东西都是由我们自己去实现的,例如自定义数组,线程文件操作,排序算法等等,有些复杂的东西实现不好很容易留下不易发现的 bug。而 C为使用者提供了一套标准模板库 STL,其中封装了很多实用的容器&#xf…

任意文件上传漏洞挖掘(getshell)

任意文件上传漏洞挖掘(getshell) 1.在漏洞挖掘过程中进行找到该子域名页面, 2.没有内容就扫目录,成功发现filemanager/,点击访问 看到upload页面感觉有惊喜, 果然有上传功能,点击上传抓包,经测试发现普通j…

【第六节:微信小程序 小程序UI组件C】微信小程序入门,以思维导图的方式展开6

如果图文字看不清,可以私信我给发大图哈。 6、小程序UI组件C 导航(Navigation) navigator 应用链接 url String 应用内的跳转链接 open-type String navigate 可选值 navigate、redirect、switchTab、reLaunch&#…

RAM++(recognize anything++)—— 论文详解

一、概述 1、是什么 RAM(RAM plus plus)论文全称 《Open-Set Image Tagging with Multi-Grained Text Supervision》。区别于图像领域常见的分类、检测、分割,他是标记任务——多标签分类任务(一张图片命中一个类别)&…

【我的创作纪念日】

机缘 大家好,我是圥忈ゼ, 2023 年 07 月 20 日,我撰写了第 1 篇技术博客:《我的编程未来规划》,也是由于我高考后的专业选择,和就业方向的选择,加上想立志成为一名专业 IT 作者,我结…

Docker | Docker部署MySQL

Docker | Docker部署MySQL ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列…

Python交互式解释器及用法

为了让开发者能快速学习、测试 Python 的各种功能,Python 提供的“python”命令不仅能用于运行 Python 程序,也可作为一个交互式解释器一一开发者逐行输入 Python 代码,它逐行解释执行。 当输入“python”命令时,可以看到如下输出…

IDEA的安装与删除插件

不小心安装了一个英文转中文的插件,看不习惯,决定重新变回英文 先点击这个settings的安装 然后就看到这个下面这张图了 如果是安装就点install,不用了就和我一样把这个勾给去掉

计算计能力挑战赛选择题真题(2020、2021、2022)

2020 1.关于联合体和结构体错误的是(a) a.联合体union的存放顺序是所有成员都从高地址开始存放的(x) (ps:联合体union的存放顺序是所有成员都从低地址开始存放的) b.联合体中可以定义多个成员,联合体的大小由最大的成员的大小决定。 c.可以使用匿名…

ChatGLM2详细安装部署(chatglm2大模型安装步骤三)

ChatGLM2安装部署 1.服务器配置 服务器系统:Centos7.9 x64 显卡:RTX3090 (24G) 虚拟环境:Miniconda3 2.安装部署 2.1 ChatGLM2下载 输入命令:git clone https://github.moeyy.xyz/https://github.com/THUDM/ChatGLM2-6B.git 输入命令:cd ChatGLM2-6B 注:https://g…

瓶盖内的条码需要注意哪些?,才能帮助企业有效搭建与消费者沟通~

在不断发展的消费品领域,特别是饮料行业,组织不断寻求创造性的方法来扩大客户参与度、增强品牌忠诚度并消除假冒产品。一种获得认可的新兴方法是在瓶盖和瓶盖上实施DataMatrix 条形码扫描。这种创新方法提供了许多好处,从改善消费者互动到强化…