66个有趣的Python冷知识
-
内联注释
- 可以在代码行尾使用
#
进行内联注释,例如x = 10 # 这是一个内联注释
。
- 可以在代码行尾使用
-
多行注释
- 多行注释可以用三个引号
'''
或"""
包裹。
- 多行注释可以用三个引号
-
分数
fractions
模块提供了分数类型,可以精确表示分数值。
-
小数
decimal
模块提供了小数类型,可以进行精确的浮点运算。
-
内置帮助
help()
函数可以用来获取对象的帮助信息。
-
文档字符串
- 函数、类和模块可以包含文档字符串(docstring),用
"""
包裹。
- 函数、类和模块可以包含文档字符串(docstring),用
-
未使用的变量
- 常用
_
作为未使用变量的占位符。
- 常用
-
上下文管理器协议
- 实现
__enter__
和__exit__
方法的对象可以用于上下文管理器。
- 实现
-
对象的
__str__
方法__str__
方法定义对象的字符串表示,用于print()
和str()
。
-
对象的
__repr__
方法__repr__
方法定义对象的官方字符串表示,用于调试和日志记录。
-
字符串的
join
方法- 使用
str.join()
方法可以高效地连接字符串列表。
- 使用
-
集合操作
- Python集合支持并集
|
、交集&
、差集-
和对称差集^
操作。
- Python集合支持并集
-
局部变量和全局变量
- 在函数中,可以使用
global
关键字声明全局变量,使用nonlocal
声明非局部变量。
- 在函数中,可以使用
-
装饰器链
- 多个装饰器可以链式应用到一个函数上。
-
动态属性
- 可以使用
setattr()
和getattr()
动态地设置和获取对象的属性。
- 可以使用
-
魔术方法
- Python类可以实现各种魔术方法,例如
__add__
、__len__
和__getitem__
。
- Python类可以实现各种魔术方法,例如
-
类方法
- 使用
@classmethod
装饰器定义类方法,第一个参数是类本身。
- 使用
-
静态方法
- 使用
@staticmethod
装饰器定义静态方法,不需要类实例或类作为参数。
- 使用
-
属性
- 使用
@property
装饰器定义属性,提供 getter 和 setter 方法。
- 使用
-
列表和元组的解包
- 可以使用
*
和**
操作符解包列表和元组。
- 可以使用
-
路径操作
os.path
模块和pathlib
模块提供了丰富的路径操作功能。
-
环境变量
os.environ
可以访问和修改环境变量。
-
临时文件
tempfile
模块提供了创建临时文件和目录的功能。
-
随机数
random
模块提供了生成随机数和随机选择的功能。
-
数学函数
math
模块提供了各种数学函数,例如sin()
、cos()
和sqrt()
。
-
统计函数
statistics
模块提供了基本的统计函数,例如mean()
、median()
和stdev()
。
-
时间和日期
time
模块和datetime
模块提供了处理时间和日期的功能。
-
计时器
- 使用
timeit
模块可以精确测量小段代码的执行时间。
- 使用
-
并发编程
concurrent.futures
模块提供了线程和进程池执行并发任务。
-
异步编程
asyncio
模块提供了构建异步IO的框架。
-
事件循环
asyncio
的事件循环可以用于管理和执行异步任务。
-
信号处理
signal
模块提供了处理操作系统信号的功能。
-
进程间通信
multiprocessing
模块提供了进程间通信的功能,例如管道和队列。
-
线程同步
threading
模块提供了同步原语,例如锁、条件变量和信号量。
-
日志记录
logging
模块提供了灵活的日志记录功能。
-
配置文件
configparser
模块提供了读写配置文件的功能。
-
命令行参数
argparse
模块提供了解析命令行参数的功能。
-
单元测试
unittest
模块提供了编写和运行单元测试的框架。
-
行为驱动开发
behave
模块支持行为驱动开发(BDD),基于Gherkin语法编写测试。
-
网络请求
requests
模块提供了简洁的人性化的HTTP请求功能。
-
数据序列化
json
和yaml
模块提供了数据序列化和反序列化的功能。
-
文件压缩
zipfile
和tarfile
模块提供了处理压缩文件的功能。
-
电子邮件
smtplib
和email
模块提供了发送电子邮件的功能。
-
FTP
ftplib
模块提供了FTP客户端功能。
-
网络编程
socket
模块提供了底层的网络编程接口。
-
HTTP服务器
http.server
模块提供了简单的HTTP服务器功能。
-
URL解析
urllib
模块提供了处理URL的功能。
-
图像处理
PIL
和Pillow
模块提供了图像处理功能。
-
音频处理
wave
和pyaudio
模块提供了音频处理功能。
-
视频处理
opencv
模块提供了视频处理和计算机视觉功能。
-
科学计算
numpy
和scipy
模块提供了强大的科学计算功能。
-
数据分析
pandas
模块提供了数据分析和操作功能。
-
机器学习
scikit-learn
模块提供了机器学习算法和工具。
-
深度学习
tensorflow
和pytorch
模块提供了深度学习框架。
-
数据可视化
matplotlib
和seaborn
模块提供了数据可视化功能。
-
Web框架
django
和flask
是两个流行的Python Web框架。
-
REST API
fastapi
是一个快速的现代Web框架,用于构建REST API。
-
静态类型
mypy
是一个用于Python的静态类型检查工具。
-
代码格式化
black
是一个流行的Python代码格式化工具。
-
代码静态分析
pylint
是一个用于Python代码的静态分析工具。
-
依赖管理
pipenv
和poetry
提供了依赖管理和虚拟环境功能。
-
版本管理
pyenv
提供了管理多个Python版本的功能。
-
项目模板
cookiecutter
提供了快速创建项目模板的功能。
-
打包和分发
setuptools
和wheel
提供了打包和分发Python包的功能。
-
国际化
gettext
模块提供了国际化和本地化支持。
-
图形用户界面
tkinter
是Python的标准图形用户界面库。