CodeQL 文档

混淆的八进制字面量

ID: py/old-style-octal-literal
Kind: problem
Security severity: 
Severity: recommendation
Precision: high
Tags:
   - readability
Query suites:
   - python-security-and-quality.qls

点击查看 CodeQL 仓库中的查询

以 0 开头的八进制字面量很容易被误认为十进制,特别是对于那些没有 C 或 Java 背景的程序员来说。

非十进制数字的新字面量语法更清晰,因此不太可能被误解。

建议

使用 0oXXX 形式而不是 0XXX 形式。或者,如果更清楚,使用二进制或十六进制格式。

示例


#Easily misread as x = 15
x = 015

#The extra 'o' alerts the reader that this is an octal literal
y = 0o15

#If this is a byte sized value then a hexadecimal might be clearer
y = 0x0d

#Or if it is a bit pattern then a binary value might be clearer
y = 0b1101

参考资料

  • ©GitHub, Inc.
  • 条款
  • 隐私