已弃用的切片方法¶
ID: py/deprecated-slice-method
Kind: problem
Security severity:
Severity: warning
Precision: very-high
Tags:
- maintainability
Query suites:
- python-security-and-quality.qls
自 Python 2.0 起,__getslice__
、__setslice__
和 __delslice__
方法已弃用。一般来说,任何类都不应实现这些方法。
此规则的唯一例外是继承自 list
并覆盖 __getitem__
、__setitem__
或 __delitem__
的类。由于 list
实现切片方法,因此任何继承自 list
的类都必须实现切片方法,以确保 __getitem__
、__setitem__
和 __delitem__
的正确行为。这些规则的例外情况不会被视为违规。
建议¶
删除切片方法。任何功能应移至等效的 __xxxitem__
方法
__getslice__
应替换为__getitem__
__setslice__
应替换为__setitem__
__delslice__
应替换为__delitem__
参考¶
Python 语言参考: 模拟序列类型的其他方法。