写点什么

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

  • 2023-11-27
    福建
  • 本文字数:2142 字

    阅读完需:约 7 分钟

自定义模块


我来举一个在 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"语句。


目录结构如下:



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) # 输出:xiaoyuprint(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

用户头像

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
🔥🔥Java开发者的Python快速进修指南:自定义模块及常用模块_Java_快乐非自愿限量之名_InfoQ写作社区