diff --git a/README.md b/README.md index 8634b1c..c935f2b 100644 --- a/README.md +++ b/README.md @@ -2404,7 +2404,70 @@ def reverse_string(string):
What empty return returns?
-
+ + +Short answer is: It returns a None object. + +We could go a bit deeper and explain the difference between + +``` +def a (): + return + +>>> None + +``` + +And + +``` +def a (): + pass + +>>> None +``` +Or we could be asked this as a following question, since they both give the same result. + +We could use the dis module to see what's going on: + +``` + 2 0 LOAD_CONST 0 (", line 2>) + 2 LOAD_CONST 1 ('a') + 4 MAKE_FUNCTION 0 + 6 STORE_NAME 0 (a) + + 5 8 LOAD_CONST 2 (", line 5>) + 10 LOAD_CONST 3 ('b') + 12 MAKE_FUNCTION 0 + 14 STORE_NAME 1 (b) + 16 LOAD_CONST 4 (None) + 18 RETURN_VALUE + +Disassembly of ", line 2>: + 3 0 LOAD_CONST 0 (None) + 2 RETURN_VALUE + +Disassembly of ", line 5>: + 6 0 LOAD_CONST 0 (None) + 2 RETURN_VALUE +``` + +An empty return is exactly the same as return None and functions without any return +will always return None regardless of the operations, therefore + + + + +``` +def sum(a, b): + global C + c = a + b + +>>> None + +``` + + ##### Time Complexity