停止写作混乱的python:干净的代码速成课程
编写有效的python很容易。但是编写python干净,可读和可维护的?这就是这个速成课程的目的。
来源:KDnuggets如果您已经在Python进行了编码一段时间,那么您可能已经掌握了基础知识,并构建了一些项目。现在,您正在查看您的代码思考:“这有效,但是...这并不是我在代码审查中自豪地展示的。”我们都去过那里。
但是,随着您进行编码,编写干净的代码变得与编写功能代码一样重要。在本文中,我编辑了可以帮助您从“它运行,不要触摸”到“这实际上可以维护”的实用技术。
🔗链接github上的代码
链接到GitHub上的代码1。明确模型数据。不要传递dicts
字典在Python中是超级灵活的,这正是问题所在。当您在整个代码中传递原始词典时,您会诱使错别字,关键错误以及有关实际存在的数据的困惑。
而不是:
def process_user(user_dict): 如果user_dict ['status'] =='active':#如果缺少'状态'怎么办? send_email(user_dict ['email'])#如果某些地方是'邮件'怎么办? #是“名称”,“ full_name”或“用户名”?谁知道! log_activity(f“处理{user_dict ['name']}”)
此代码不健壮,因为它假设没有验证的字典键。它没有针对错别字或丢失键的保护,这将在运行时导致keyError例外。也没有关于期望哪些领域的文件。
keyError
这样做:
从数据级导入数据级 从输入导入可选 @DataClass 班级用户: id:int 电子邮件:str full_name:str 状态:Str last_login:可选[dateTime] =无 def process_user(用户:用户): 如果user.status =='active': send_email(user.email) log_activity(f“处理{user.full_name}”)
Python的@DataClass装饰器可为您提供清洁,明确的结构,并使用最少的样板。您的IDE现在可以为属性提供自动完成,如果缺少需要的字段,您将立即遇到错误。
@dataclass
带有枚举:
黑色