【Python】四条编写更好 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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值