四条编写更好 Python 代码的建议
强制要求传入关键字参数
当方法的参数很多时,位置参数容易出现错误的情况,这种情况下可以通过如下方法要求强制以 k-v 形式传入关键字参数,避免传参位置错误出现的 bug
def run(*, msg1: str, msg2: str):
print(f"{msg1 = }, {msg2 = }")
run(msg1="a", msg2="b")
不要使用 pass
或者 ...
我经常会使用
pass
或者...
来做占位符,表示会有这个方法,但是当前并未被实现,这在代码量比较小的时候还好,当代码量变大很有可能会忘记这个从而引发一些预料之外的 bug
建议对所有此类函数都使用 raise NotImplementedError() 来抛出异常,并将输出详细信息
def some_func():
raise NotImplementedError("This mehtod have not been implement yet.")
明确标识函数的返回值类型
这一条是为了让代码可以方便、快速的被阅读,并且在 IDE 中也会有相关的智能提示帮助减少错误的返回值,或者快速获取返回值所具有的属性、方法
class Point2D:
def __init__(self, x: float, y: float):
self.x, self.y = x, y
def get_point2d() -> Point2D:
return Point2D(120.21, 30.31)
尽可能为每个方法都添加 doc string
def get_point2d() -> Point2D:
"""
Usage:
Get a point2d instance.
Returns:
Point2D
"""
return Point2D(120.21, 30.31)