Просмотри внимательнее.
В теле f1 стоит
return, поэтому при вызове f1(), она
возвращает то, что записано после return.
В теле f2 return отсутствует, поэтому f2() ничего не возвращает. А если быть точнее, f2() возвращает None:
>>> def f2():
... pass
...
>>> a = 5
>>> print a
5
>>> a = f2()
>>> print a
None
В моем первом посте печатается строка “print from f2”, т.к. при вызове f2() начинает выполнятся тело функции, и когда поток выполнения доходит до инструкции print, строка печатается на экран. При этом, т.к. в теле
НЕТ return, функция ничего не возвращает == возвращает None.
Надеюсь не слишком намудрил…:)