Avoid Builtin Shadow¶
Sourcery comment id: avoid-builtin-shadow
¶
Description¶
Don't assign to builtin variables, such as list
.
Before¶
list = [1, 1, 2, 3, 5, 8]
Possible Fix¶
fibonacci = [1, 1, 2, 3, 5, 8]
Explanation¶
Python has a number of builtin
variables: functions and constants that form a
part of the language, such as list
, getattr
, and type
(See
https://docs.python.org/3/library/functions.html). It is valid, in the language,
to re-bind such variables:
list = [1, 2, 3]
However, this is considered poor practice.
- It will confuse other developers.
- It will confuse syntax highlighters and linters.
- It means you can no longer use that builtin for its original purpose.
How can you solve this?
Rename the variable something more specific, such as integers
. In a pinch,
my_list
and similar names are colloquially-recognized placeholders.