混淆的八进制字面量¶
ID: py/old-style-octal-literal
Kind: problem
Security severity:
Severity: recommendation
Precision: high
Tags:
- readability
Query suites:
- python-security-and-quality.qls
以 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
参考资料¶
Python 语言参考:整数字面量。
Python PEP 3127:整数字面量支持和语法。