好的,按照我们平常的惯例,我先来讲一下今天这节课的内容,以及Java和Python在某些方面的相似之处。Python使用import语句来导入包,而Java也是如此。然而,两者之间的区别在于Python没有类路径的概念,它直接使用.py文件的文件名作为导入路径,并将其余的工作交给Python解释器来扫描和处理。另外,你可能经常看到有人使用from..import语句,这种语法是为了从.py文件中只导入部分函数或变量而设计的。也可能是导致不同包目录的情况

自定义模块

我来举一个在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) # 输出: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,它们在开发中非常实用。希望今天的课程对大家有所帮助!

🔥🔥Java开发者的Python快速进修指南:自定义模块及常用模块的更多相关文章

  1. 进击的Python【第五章】:Python的高级应用(二)常用模块

    Python的高级应用(二)常用模块学习 本章学习要点: Python模块的定义 time &datetime模块 random模块 os模块 sys模块 shutil模块 ConfigPar ...

  2. Python模块之常用模块,反射以及正则表达式

    常用模块  1. OS模块 用于提供系统级别的操作,系统目录,文件,路径,环境变量等 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("di ...

  3. 《Python》内置方法进阶和常用模块

    一:__new__ 在__init__之前,实例化对象的第一步是__new__创建了一个空间 class Foo: def __init__(self): # 初始化方法 print('执行了init ...

  4. JAVA开发者的Golang快速指南

    Golang作为Docker.Kubernetes和OpenShift等一些酷辣新技术的首选编程语言,越来越受欢迎.尤其它们都是开源的,很多情况下,开源是非常有价值的.深入学习阅Golang等源代码库 ...

  5. MessagePack Java 0.6.X 快速开始指南 - 安装

    0.6.x 版本的 MessagePack 已经过期被淘汰了.如果你现在开始使用 MessagePack 话,请不要使用这个版本. 我们再这里保留 0.6.x 版本的内容主要用于参考用途. 最新的 M ...

  6. 针对Quant的Python快速入门指南

    作者:用Python的交易员 (原创文章,转载请注明出处) 最近有越来越多的朋友在知乎或者QQ上问我如何学习入门Python,就目前需求来看,我需要写这么一篇指南. 针对整个vn.py框架的学习,整体 ...

  7. 老男孩python学习自修第十六天【常用模块之sys和os】

    例子: sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys. ...

  8. 第六篇:python基础_6 内置函数与常用模块(一)

    本篇内容 内置函数 匿名函数 re模块 time模块 random模块 os模块 sys模块 json与pickle模块 shelve模块 一. 内置函数 1.定义 内置函数又被称为工厂函数. 2.常 ...

  9. Python模块(一)(常用模块)

    1. 简单了解模块 写的每一个py文件都是一个模块. 还有一些我们一直在使用的模块 buildins 内置模块. print, input random 主要是和随机相关的内容 random()    ...

  10. python的进修之路

    PYTHON目录篇 本篇主要在个人学习python中的一些总结性的总线,包括python的基础,python的基础进阶,除了帮助和我一样学习python的同学,也是对自己的一种要求! python基础 ...

随机推荐

  1. 超详细的webpack之开始体验吧

    webpack是一个前端工程化非常重要静态模块化打包工具,可以帮我们把 less.sass.esmodule.commonjs 等模块依赖处理成浏览器可识别的静态资源. 虽然webpack非常好用,但 ...

  2. [etcd]基本数据库操作

    前言 etcd数据库操作基本围绕着对键值和目录的CRUD操作,以及生命周期的管理. 之前在单节点部署了三实例集群,而etcdctl默认找的是127.0.0.1:2379,所以这里先声明一个临时全局变量 ...

  3. 二代水务系统架构设计分享——DDD+个性化

    系统要求 C/S架构的单体桌面应用,可以满足客户个性化需求,易于升级和维护.相比于一代Winform,界面要求美观,控件丰富可定制. 解决方案 依托.Net6开发平台,采用模块化思想设计(即分而治之的 ...

  4. UI通过元素定位实现特定区域截图

    最近计划做一个自动截图的工具,目的是实现性能测试资源监控平台(grafana)各硬件资源的自动截图,解放手工操作.前期的截图做了如下探索. 1. 整个页面截图 1.1 代码实现 通过save_scre ...

  5. win10安装mysql5.7.35教程

    前提条件:我下载的是压缩包版本5.7.35,下载地址是 https://downloads.mysql.com/archives/community/ 下载完后解压,并在如下图目录里加入data文件夹 ...

  6. elasticsearch中的数据类型search_as_you_type及查看底层Lucene索引

    search_as_you_type字段类型用于自动补全,当用户输入搜索关键词的时候,还没输完就可以提示用户相关内容.as_you_type应该是说当你打字的时候.它会给索引里的这个类型的字段添加一些 ...

  7. 使用Java来开发物联网应用

    这是Hello, Lithosphere Tutorials系列教程中的其中一篇. 感觉介绍用C/C++,用Python来开发物联网应用的文章比较多,用Java来做物联网的文章比较少. 这篇文章,介绍 ...

  8. Linux 干货整理(持续更新)

    博客地址:https://www.cnblogs.com/zylyehuo/ 如果虚拟机开机没有 ip 怎么办 1.vim编辑网卡配置文件,修改如下参数 [root@s25linux tmp]# cd ...

  9. C#结合OpenCVSharp4使用直方图算法比较图片相似度

    C#结合OpenCVSharp4使用直方图算法比较图片相似度 直方图有灰度直方图.颜色直方图,如果是灰度图像,那么就用灰度直方图,这里使用颜色直方图来计算两个图片的相似度. 这里只记录如何使用,至于算 ...

  10. PivotGridControl自定义行数据的统计公式

    我们在使用PivotGridControl进行数据统计的时候,用时候需要在不同的行使用不同的汇总公式的情况,本文就是为了说明怎么实现此功能,如下图说明 数据源: 注意:此时数据列指定的SummaryT ...