2016-12-08 6 views
0

Это еще один вопрос от https://stackoverflow.com/questions/41028828/python-does-if-not-statement-implicitly-check-2-conditions?noredirect=1#comment69265422_41028828Python - если не условие не возвращаются None

Я пытаюсь дополнительно уточнить концепцию с if заявления с использованием not. Я понимаю, что print secondFunction(True) вернется True, так как будет вызван randomFunction, но сценарий возвращается None. Пожалуйста помоги!

def randomFunction(value): 
     if value: 
      return True 
     else: 
      return False 

    def secondFunction(v): 
     if not randomFunction(v): 
      return "minus it" 

print secondFunction(True) 
+2

Вы передаете 'True' во вторую функцию. В выражении if говорится: «Если возврат функции randonFunction (True) не является« True », верните« минус ». Поскольку нет ничего, он ничего не возвращает, поэтому он печатает« None » –

+0

@SterlingArcher, что я точно понимаю Мне сказали, что 'randomFunction' будет выполняться неявно – Young

+0

Я не понимаю, что это связано с тем, что вы передаете true, поэтому он возвращает true, и вы проверяете не true –

ответ

2

«randomFunction» возвращается к «secondFunction». На данный момент у вас есть это «если» условие:

if not (True):

Если бы «True» условие было проверено и «secondFunction» возвращает «минус это». В вашем примере он никогда не войдет в условие «если». По этой причине «secondFunction» всегда возвращает результат None, потому что он стал неявно процедурой без возврата.

Я надеюсь, что это было ясно для вас.