前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中规范的变量命名会让你的代码更优雅

Python中规范的变量命名会让你的代码更优雅

作者头像
楚客追梦
发布2024-08-07 14:12:39
800
发布2024-08-07 14:12:39
举报
文章被收录于专栏:网页杂谈

人生苦短,我学Python!在Python中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。变量名应该清晰地表达其用途或含义,避免使用无意义的名称。好的命名习惯能会让你的代码更优雅,读起来更有故事感。

1. 基本规则和意义

命名的初心

想象一下,如果代码是你的美食笔记,变量就是那些调料的名字。你想让未来的自己,或是别人,一眼就能知道“salt”是盐,“pepper”是胡椒,而不是什么“x123”。所以,清晰、直接是第一原则!

py

代码语言:javascript
复制
# 好名字 vs. 糟糕的名字
age = 13  # 清晰易懂
x = 13    # 猜猜我是谁?

命名的方法

驼峰式(CamelCase)

当变量由多个单词组成,除了第一个单词,每个单词首字母大写,不使用下划线。

下划线式(snake_case)

每个单词间用下划线连接,全部小写。 Python社区偏爱下划线式,因为它更易读。

py

代码语言:javascript
复制
# 驼峰式 vs. 下划线式
studentName = "Alice"  # 驼峰式
student_name = "Alice"  # 下划线式,Python的最爱

命名的长度

短而精,但别太短 变量名应该简洁,但要传达足够的信息。比如,num_students比n好太多,但也不必冗长到numberOfStudentsInClassToday。

py

代码语言:javascript
复制
# 刚刚好
num_students = 55

# 太短或太长
n = 55
students_count_today_in_class = 55

避免数字开头

数字开头的变量名会让人困惑,而且Python不允许这样做。

py

代码语言:javascript
复制
# 错误示范
2nd_score = 95  # 这样不行哦!

# 正确做法
second_score = 95  

禁止使用Python关键字

Python有一些保留词汇,如if, for, class等,它们有特殊含义,用作变量名会让你的程序大乱套。

py

代码语言:javascript
复制
# 千万不要这样
for = 5  # 这会引起大麻烦!

# 正确的是使用其他名字
loop_count = 5

见名知意

好的变量名应该能让人快速理解其用途。比如,total_price而不是tp。

py

代码语言:javascript
复制
# 易于理解
total_price = calculate_prices(items) 

# 谜语时间
tp = cp(items)  # 这里cp是什么鬼?

一致性为王

在项目中保持一致的变量命名风格,有助于提高代码的可读性和可维护性。可以选择使用下划线分隔单词或采用驼峰命名法,但应在整个项目中保持统一。 在整个项目中保持一致的命名风格,这是专业程序员的自我修养。

使用英文

虽然Python很国际化,但为了代码的通用性和阅读者的方便,建议使用英文命名。

py

代码语言:javascript
复制
# 国际通行
age = 25

# 虽然有创意,但不推荐
年龄 = 25

复数形式要明确

表示多个对象时,使用复数形式。但如果是计数器,单数即可。

py

代码语言:javascript
复制
# 清晰区分
students = ["Alice", "Bob"]
student_count = 2

避免缩写

除非是广为人知的缩写,否则尽量全拼。不然,你可能在为未来的你挖坑。

py

代码语言:javascript
复制
# 避免不必要的缩写
url = "https://www.wanghao.me"

# 而不是
u = "https://www.wanghao.me"

描述状态的变量

当变量表示某种状态时,用动词+形容词,如is_valid。

py

代码语言:javascript
复制
# 状态一目了然
is_valid = True

# 直接明了比含糊其辞好
v = True  # 这是什么意思?

利用注释

如果变量名真的很难表达清楚,那就加上注释来辅助说明吧!

py

代码语言:javascript
复制
# 注释救场
user_data = {"name": "Alice", "age": 25}  # 用户信息字典

实践出真知

多写代码,多实践,你会慢慢形成自己的命名直觉。

团队约定

如果你在团队中工作,确保大家遵守相同的命名规则。团队协作,规则先行。

回顾与重构

定期回顾代码,看看是否有变量命名可以改进的地方。重构不只是代码的优化,也是命名艺术的提升。

2. 进阶技巧

类变量与实例变量的区分命名

在面向对象编程中,区分类变量(属于类本身)和实例变量(属于类的每个实例)很重要。通常,类变量会用全大写字母,中间用下划线连接,以示区别。

py

代码语言:javascript
复制
class Student:
    SCHOOL_NAME = "Example High"  # 类变量
    def __init__(self, name):
      self.name = name  # 实例变量

使用枚举类型(Enum)

对于一组固定的值,使用枚举类型可以提高代码的可读性和安全性。

py

代码语言:javascript
复制
from enum import Enum

class Grade(Enum):
    A = 90
    B = 80
    C = 70

current_grade = Grade.A  # 清晰表达当前成绩等级

避免过于具体的命名

虽然变量名应描述性,但也要避免过于具体到特定实现,这样未来修改实现时,不用改名。

py

代码语言:javascript
复制
# 不好
current_student_list = []

# 更好
students = []

动态命名的陷阱

尽量少用动态生成变量名,这会使得代码难以追踪和理解。

py

代码语言:javascript
复制
# 尽量避免
for i in range(5):
  var_name_i = f"data_{i}"  # 不直观,不易管理
    
# 使用列表或字典代替
data = [f"data_{i}" for i in range(5)]

遵循DRY原则(Don’t Repeat Yourself)

如果发现同样的信息在多个变量名中重复出现,考虑使用函数或类来封装这些逻辑。

py

代码语言:javascript
复制
# 反例
age_student1 = 25
age_student2 = 26

# 正例
def create_student_profile(age):
    return {"age": age}
student1 = create_student_profile(25)
student2 = create_student_profile(26)

3. 实战应用

假设我们正在开发一个简单的天气应用,来看看如何运用这些命名技巧。

py

代码语言:javascript
复制
class Weather:
    def __init__(self, city, temperature, condition):
      self.city = city  # 清晰表达城市名
      self.temperature_celsius = temperature  # 温度单位明确
      self.weather_condition = condition  # 条件描述

    def describe(self):
      return f"In {self.city}, it's {self.weather_condition} with a temperature of {self.temperature_celsius}°C."

weather_london = Weather("London", 15, "Partly Cloudy")
print(weather_london.describe())

这段代码展示了如何通过有意义的变量名来增强代码的可读性和结构清晰度。每个变量名都直接反映了其背后的意图,使代码自解释性更强。

命名不仅是技术,更是一种艺术。

那年 • 今日

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 基本规则和意义
    • 命名的初心
      • 命名的方法
        • 驼峰式(CamelCase)
        • 下划线式(snake_case)
      • 命名的长度
        • 避免数字开头
          • 禁止使用Python关键字
            • 见名知意
              • 一致性为王
                • 使用英文
                  • 复数形式要明确
                    • 避免缩写
                      • 描述状态的变量
                        • 利用注释
                          • 实践出真知
                            • 团队约定
                              • 回顾与重构
                              • 2. 进阶技巧
                                • 类变量与实例变量的区分命名
                                  • 使用枚举类型(Enum)
                                    • 避免过于具体的命名
                                      • 动态命名的陷阱
                                        • 遵循DRY原则(Don’t Repeat Yourself)
                                        • 3. 实战应用
                                        相关产品与服务
                                        Prowork 团队协同
                                        ProWork 团队协同(以下简称 ProWork )是便捷高效的协同平台,为团队中的不同角色提供支持。团队成员可以通过日历、清单来规划每⽇的工作,同时管理者也可以通过统计报表随时掌握团队状况。ProWork 摒弃了僵化的流程,通过灵活轻量的任务管理体系,满足不同团队的实际情况,目前 ProWork 所有功能均可免费使用。
                                        领券
                                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档