magic-value-comparison / R2004ΒΆ
Message emitted:
Consider using a named constant or an enum instead of '%s'.
Description:
Using named constants instead of magic values helps improve readability and maintainability of your code, try to avoid them in comparisons.
Problematic code:
import random
measurement = random.randint(0, 200)
above_threshold = False
i = 0
while i < 5: # [magic-value-comparison]
above_threshold = measurement > 100 # [magic-value-comparison]
if above_threshold:
break
measurement = random.randint(0, 200)
Correct code:
import random
MAX_NUM_OF_ITERATIONS = 5
THRESHOLD_VAL = 100
MIN_MEASUREMENT_VAL = 0
MAX_MEASUREMENT_VAL = 200
measurement = random.randint(MIN_MEASUREMENT_VAL, MAX_MEASUREMENT_VAL)
above_threshold = False
i = 0
while i < MAX_NUM_OF_ITERATIONS:
above_threshold = measurement > THRESHOLD_VAL
if above_threshold:
break
measurement = random.randint(MIN_MEASUREMENT_VAL, MAX_MEASUREMENT_VAL)
Configuration file:
[main]
load-plugins=pylint.extensions.magic_value
Note
This message is emitted by the optional 'magic-value'
checker, which requires the pylint.extensions.magic_value
plugin to be loaded.
Created by the magic-value checker.