Мне очень тяжело оборачиваться, если нет, или заявления. Благодаря stackoverflow, я знаю, что выражение, выполняющее оператор or, будет выполняться только в том случае, если первое, если не утверждение - False, но все мои пальцы, кажется, хотят печатать, когда сталкиваются с возможным вариантом использования этого, это скорее вложенный если заявление.
Например, следующие классы выдают один и тот же вывод для любого значения x.
def if_not_or(self, x):
if not isinstance(x, int) or x % 2 == 0:
return False
return True
def nested_if(self, x):
if isinstance(x, int):
if x % 2 == 1:
return True
return False
Несмотря на то, что первый метод выглядит более элегантным, он дает какое-то конкретное преимущество перед лестничным методом? Я боюсь, что если потенциальный вариант использования этого появится в одном из моих проектов, я просто выберу подход «вложенный, если», потому что мне легче обернуть свой ум начального и среднего уровня программирования. Большое спасибо за просвещение по этой теме.