Unnecessary "else" after "return", remove the "else" and de-indent the code inside it
136 events.resumeReceivingMetrics.addHandler(self.resumeReceiving)
137
138 def getPeerName(self):
139 if hasattr(self.transport, 'getPeer'):140 peer = self.transport.getPeer()
141 return "%s:%d" % (peer.host, peer.port)
142 else:
Unnecessary "else" after "return", remove the "else" and de-indent the code inside it
44 clients = len(state.connectedMetricReceiverProtocols)
45 max_clients = settings.MAX_RECEIVER_CONNECTIONS
46
47 if clients < max_clients: 48 return ServerFactory.buildProtocol(self, addr)
49 else:
50 return None
Unnecessary "else" after "return", remove the "else" and de-indent the code inside it
132
133
134def _process_alive(pid):
135 if exists("/proc"):136 return exists("/proc/%d" % pid)
137 else:
138 try:
Description
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.
Bad practice
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'
Preferred:
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'