Python实战开发速查笔记——注释篇

文章讲述了代码中何时需要添加注释,例如在技巧性操作、复杂逻辑和背景解释时。注释应清晰且与代码保持适当距离,可使用Markdown语法增强可读性。同时,强调注释不应仅仅复述代码内容。文中还提及PyTorch版本的保存格式问题,以及处理版本兼容的代码示例。
摘要由CSDN通过智能技术生成

目录

什么地方需要写注释

注释的格式是什么

注意事项


参考链接:https://mmengine.readthedocs.io/zh_CN/latest/notes/code_style.html#id9

什么地方需要写注释

  1. 代码中技巧性的部分;
  2. 复杂操作写上若干行;
  3. 不能一目了然的代码行尾添加注释;

下例展示了需要书写注释的情况:

1. 技巧性操作

# We use a weighted dictionary search to find out where i is in
# the array. We extrapolate position based on the largest num
# in the array and the array size and then do binary search to
# get the exact number.
if i & (i-1) == 0:  # True if i is 0 or a power of 2.

2. 复杂操作,通过注释明确优先级关系

# self.build_func will be set with the following priority:
# 1. build_func
# 2. parent.build_func
# 3. build_from_cfg
if build_func is None:
    if parent is not None:
        self.build_func = parent.build_func
    else:
        self.build_func = build_from_cfg
else:
    self.build_func = build_func

3. 不能一目了然,通过注释帮助他人了解背景

def _save_ckpt(checkpoint, file):
    # The 1.6 release of PyTorch switched torch.save to use a new
    # zipfile-based file format. It will cause RuntimeError when a
    # checkpoint was saved in high version (PyTorch version>=1.6.0) but
    # loaded in low version (PyTorch version<1.6.0). More details at
    # https://github.com/open-mmlab/mmpose/issues/904
    if digit_version(TORCH_VERSION) >= digit_version('1.6.0'):
        torch.save(checkpoint, file, _use_new_zipfile_serialization=False)
    else:
        torch.save(checkpoint, file)

注释的格式是什么

  1. 注释至少离开代码2个空格
  2. 可以使用 Markdown 语法;

下例展示了使用 Markdown 语法的注释:

# `_reversed_padding_repeated_twice` is the padding to be passed to
# `F.pad` if needed (e.g., for non-zero padding types that are
# implemented as two ops: padding + conv). `F.pad` accepts paddings in
# reverse order than the dimension.
self._reversed_padding_repeated_twice = _reverse_repeat_tuple(self.padding, 2)

注意事项

  1. 不要描述代码

下例展示了一种错误的无效的这是书写方式:

# Wrong:
# Now go through the b array and make sure whenever i occurs
# the next element is i+1

# Wrong:
if i & (i-1) == 0:  # True if i bitwise and i-1 is 0.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值