else
/ elif
used after return
PYL-R1705137
138 if length == 2:
139 tok, val = a
140 if tok == MAX_REPEAT:141 return _val_eq(val, b[1])
142 elif tok == SUBPATTERN:
143 return _pair_eq(a, b)
99 type_a = type(a)
100 type_b = type(b)
101
102 if type_a == SubPattern:103 if type_b == SubPattern:
104 b = b.data
105 type_b = type(b)
82 val_a = a[1]
83 val_b = b[1]
84
85 if tok == MAX_REPEAT: 86 if val_a[0:2] != val_b[0:2]:
87 return False
88 return _val_eq(val_a[-1], val_b[-1])
The use of else
or elif
becomes redundant and can be dropped if the last statement under the leading if
/ elif
block is a return
statement.
In the case of an elif
after return
, it can be written as a separate if
block.
For else
blocks after return
, the statements can be shifted out of else
. Please refer to the examples below for reference.
Refactoring the code this way can improve code-readability and make it easier to maintain.
def classify_number(x):
if x % 2 == 0:
return 'Even'
else:
return 'Odd'
def what_is_this_number(x):
if x % 2 == 0 and x >= 0:
return 'Even'
elif x % 2 == 0 and x < 0:
return 'Even and Negative'
elif x % 2 != 0 and x < 0:
return 'Odd and Negative.'
else:
return 'Odd'
def classify_number(x):
if x % 2 == 0:
return 'Even'
return 'Odd'
def what_is_this_number(x):
if x % 2 == 0 and x >= 0:
return 'Even'
if x % 2 == 0 and x < 0:
return 'Even and Negative'
if x % 2 != 0 and x < 0:
return 'Odd and Negative'
return 'Odd'