当前位置:   article > 正文

Python学习之代码规范_python 代码规范

python 代码规范

摘要

规范像一门语言的语法、语感。了解规范帮助更好地理解别人写代码的思路。这是一篇学习笔记。

内容

关于每行不超过79个字符

python中,一个字=一个字符,一个空格也算一个字符
比如,Hello World的个数:

string = "Hello World"
print(len(string))  # 输出:11

string = "Hello\tWorld\n" # 制表符\t和换行符\n也都被认为是一个字符
print(len(string))  # 输出:12
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行

关于何时空格

1.运算符两边需要空1格
2.列表、字典、元组和参数列表中,逗号后使用一个空格

# 正确的空格使用
a = 1
b = a + 2
my_list = [1, 2, 3, 4]
  • 1
  • 2
  • 3
  • 4
'
运行

3.左括号后不用空,右括号前不用空

关于何时空行

1.导入时,不同级别之间空1行
导入顺序:标准库、第三方库、应用程序指定的导入,每组之间用1个空行分隔。

import os
import sys

from third_party_library import Django

from local_module import local_class
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.定义之间用2个空行;类中的函数定义之间用1个空行。

class FirstClass:
    def method_a(self):
        pass

    def method_b(self):
        pass


class SecondClass:
    def method_c(self):
        pass
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
'
运行

(pass是当方法体还没具体想好时,占位用的。不影响整体代码执行)

关于异常处理

异常处理是一种机制,用于捕获和处理程序运行过程中可能出现的错误和异常情况。
就像活动策划时要考虑2种情况:1.能想到的可能异常情况(越具体越好)&实在想不到用一个通用异常代替(比较宽泛);2.没有异常。最后不论1,2,都要让人知道活动流程的进度。
这分别对应异常处理程序中关键字expect,else,finally所实现的功能。

try:
    # 可能会引发异常的代码块
    result = 10 / 2
except ZeroDivisionError:
    # 处理捕获到的 ZeroDivisionError 异常
    print("除数不能为零")
else:
    # 没有异常发生时执行的代码块
    print("计算结果:", result)
finally:
    # 无论是否发生异常,都会执行的代码块
    print("程序结束")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
'
运行

except语句,可以指定一个或者多个异常类型,用于捕获特定类型的异常。大体分为两种:1.能想到很具体的,2.想不到只能通用概括为异常。分别对应

try:
    # 可能会引发异常的代码块
    result = 10 / 0  # 除以0会引发 ZeroDivisionError 异常
except ZeroDivisionError:
    # 处理捕获到的 ZeroDivisionError 异常
    print("除数不能为零")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
'
运行

(此例是具体的异常:ZeroDivisionError 类型)

try:
    # 可能会引发异常的代码块
    result = 10 / 0
except Exception:
    # 处理捕获到的任何异常
    print("发生了异常")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
'
运行

(此例没有指定具体的异常类型,所以用通用的Exception 类)

关于什么是格式化

格式化就是按照一定规则进行排版。
传统方法是用%占位,弊端是可读性差、错误难以发现、功能有限而且不安全。
常用的方法是.format()和f-string

name = "Alice"
age = 25

# 使用 format()
print("Hello, {}. You are {} years old.".format(name, age))

# 使用 f-string(Python 3.6+)
print(f"Hello, {name}. You are {age} years old.")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
'
运行

总结

对我而言,命名规则很重要。在此之前,只是知道大小驼峰命名法,但以为选固定一种就要全程统一,所以对一个程序里出现不一样的命名很迷惑也很不舒服。不过,现在觉得这种对变量都小写、常量都大写、类名驼峰法的区分真香!

参考

【1】https://zhuanlan.zhihu.com/p/401127513
【2】官方PEP8 规范 https://peps.python.org/pep-0008/#global-variable-names
【3】小白友好 https://mp.weixin.qq.com/s/Hq4-vapFewu5ywrfIaflKw

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/904594
推荐阅读
相关标签
  

闽ICP备14008679号