几个让Python代码更优雅的技巧

简介: 几个让Python代码更优雅的技巧

几个让Python代码更优雅的技巧

Python以简洁著称,但有些特性还是容易被忽略。今天分享几个提升代码质量的实用技巧。

1. 路径管理用Pathlib

别再到处用os.path了,pathlib更现代:

from pathlib import Path

# 自动处理不同系统的路径分隔符
data_dir = Path("data") / "raw" / "2023.csv"
if data_dir.exists():
    with data_dir.open() as f:
        print(f.read())

2. 数据类省去样板代码

普通类需要写一堆初始化代码:

# 旧方式
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 新方式
from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int

自动生成initrepr等方法,整洁多了。

3. 枚举让常量更规范

用普通变量定义常量容易出错:

# 不推荐
STATUS_DRAFT = 1
STATUS_PUBLISHED = 2

# 推荐
from enum import Enum

class Status(Enum):
    DRAFT = 1
    PUBLISHED = 2

类型提示友好,遍历也方便。

4. 函数参数解包

当列表元素正好对应函数参数时:

def draw_point(x, y, color):
    print(f"在({x}, {y})画{color}点")

point = [10, 20, "红色"]
draw_point(*point)  # 列表解包

config = {
   "x": 30, "y": 40, "color": "蓝色"}
draw_point(**config)  # 字典解包

5. 上下文管理器处理资源

用with语句自动管理资源:

# 文件自动关闭
with open("log.txt", "r") as f:
    content = f.read()

# 自定义上下文管理器
from contextlib import contextmanager

@contextmanager
def timer():
    import time
    start = time.time()
    yield
    print(f"耗时: {time.time() - start:.2f}秒")

with timer():
    # 执行耗时操作
    sum(range(1000000))

6. zip并行迭代多个列表

names = ["小明", "小红", "小刚"]
scores = [95, 87, 92]

for name, score in zip(names, scores):
    print(f"{name}: {score}分")

处理完最短的那个自动停止,不用担心索引越界。

总结

这些小技巧能让代码更Pythonic,也更易维护。建议在项目中逐步尝试,感受它们带来的变化。你最喜欢哪个?欢迎留言讨论。

相关文章
|
28天前
|
索引 Python
5个让代码更Pythonic的小技巧
5个让代码更Pythonic的小技巧
333 135
|
20天前
|
域名解析 弹性计算 运维
阿里云轻量应用服务器收费标准与活动价格:2核2G38元1年、2核4G9.90元1月、199.00元1年
阿里云轻量应用服务器提供多样化类型与灵活配置,涵盖通用型、CPU优化型、多公网IP型等,满足不同场景需求。其收费标准因类型与配置而异,提供中国内地与其他国家和地区套餐,且常有优惠活动,如2026年2核2G服务器抢购价38元/年,2核4G服务器9.9元/月等。该服务器集成域名解析、网站搭建等功能,简化应用搭建流程,降低云计算使用门槛,是个人开发者、中小企业及学生用户高效、便捷的云服务解决方案。
|
1月前
|
索引 Python
Python代码可更优雅高效!本文介绍4个实用技巧
Python代码可更优雅高效!本文介绍4个实用技巧:①用`enumerate`同时获取索引与值;②用`zip`并行遍历多列表;③用列表推导式简洁生成新序列;④用f-string直观格式化字符串。掌握这些,助你写出地道、简洁、高性能的Pythonic代码。(239字)
317 134
|
28天前
|
JavaScript
JS小技巧:使用可选链操作符(?.)优雅访问深层对象
JS小技巧:使用可选链操作符(?.)优雅访问深层对象
345 137
|
28天前
|
索引 Python
5个让Python代码更优雅的实用技巧
5个让Python代码更优雅的实用技巧
320 135
|
2月前
|
PHP
PHP技巧分享:提升开发效率的5个小妙招
PHP技巧分享:提升开发效率的5个小妙招
225 128
|
7天前
|
SQL 关系型数据库 MySQL
5个提升MySQL查询效率的实用技巧
5个提升MySQL查询效率的实用技巧
|
28天前
|
JavaScript 前端开发
提升代码质量的5个JavaScript小技巧
提升代码质量的5个JavaScript小技巧
334 137
|
28天前
|
JavaScript 前端开发 API
解锁 JavaScript 解构赋值的 5 个隐藏技巧
解锁 JavaScript 解构赋值的 5 个隐藏技巧
353 142
|
7天前
|
索引 Python
5个让你代码更优雅的Python技巧
5个让你代码更优雅的Python技巧
208 143

热门文章

最新文章