Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- In [35]: def a(i):
- ...: return i * 2
- ...:
- In [36]: def b():
- ...: return a(i)
- ...:
- In [37]: def c():
- ...: def a(i):
- ...: return i * 2
- ...: return a(2)
- ...:
- In [38]: def d():
- ...: a = lambda i: i * 2
- ...: return a(2)
- ...:
- In [39]: def e():
- ...: i = 2
- ...: return i * 2
- ...:
- In [47]: %timeit b()
- 177 ns ± 1.06 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
- In [48]: %timeit c()
- 261 ns ± 2.54 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
- In [49]: %timeit d()
- 260 ns ± 1.05 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
- In [50]: %timeit e()
- 120 ns ± 0.13 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
- In [59]: class C:
- ...: def a(self, i):
- ...: return i * 2
- ...: def b(self):
- ...: return a(2)
- ...:
- In [60]: class D:
- ...: def b(self):
- ...: def a(i):
- ...: return i * 2
- ...: return a(2)
- ...:
- In [61]: obj_c = C()
- In [62]: obj_d = D()
- In [63]: %timeit obj_c.b()
- 202 ns ± 0.628 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
- In [64]: %timeit obj_d.b()
- 286 ns ± 1.12 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
- In [65]: dis.dis("""def a(i):
- ...: return i * 2
- ...: def b():
- ...: return a(2)
- ...: """)
- 1 0 LOAD_CONST 0 (<code object a at 0x106ad45d0, file "<dis>", line 1>)
- 2 LOAD_CONST 1 ('a')
- 4 MAKE_FUNCTION 0
- 6 STORE_NAME 0 (a)
- 3 8 LOAD_CONST 2 (<code object b at 0x1071e44b0, file "<dis>", line 3>)
- 10 LOAD_CONST 3 ('b')
- 12 MAKE_FUNCTION 0
- 14 STORE_NAME 1 (b)
- 16 LOAD_CONST 4 (None)
- 18 RETURN_VALUE
- Disassembly of <code object a at 0x106ad45d0, file "<dis>", line 1>:
- 2 0 LOAD_FAST 0 (i)
- 2 LOAD_CONST 1 (2)
- 4 BINARY_MULTIPLY
- 6 RETURN_VALUE
- Disassembly of <code object b at 0x1071e44b0, file "<dis>", line 3>:
- 4 0 LOAD_GLOBAL 0 (a)
- 2 LOAD_CONST 1 (2)
- 4 CALL_FUNCTION 1
- 6 RETURN_VALUE
- In [66]: dis.dis("""def b():
- ...: def a(i):
- ...: return i * 2
- ...: return a(2)
- ...: """)
- 1 0 LOAD_CONST 0 (<code object b at 0x1071e4420, file "<dis>", line 1>)
- 2 LOAD_CONST 1 ('b')
- 4 MAKE_FUNCTION 0
- 6 STORE_NAME 0 (b)
- 8 LOAD_CONST 2 (None)
- 10 RETURN_VALUE
- Disassembly of <code object b at 0x1071e4420, file "<dis>", line 1>:
- 2 0 LOAD_CONST 1 (<code object a at 0x106ad45d0, file "<dis>", line 2>)
- 2 LOAD_CONST 2 ('b.<locals>.a')
- 4 MAKE_FUNCTION 0
- 6 STORE_FAST 0 (a)
- 4 8 LOAD_FAST 0 (a)
- 10 LOAD_CONST 3 (2)
- 12 CALL_FUNCTION 1
- 14 RETURN_VALUE
- Disassembly of <code object a at 0x106ad45d0, file "<dis>", line 2>:
- 3 0 LOAD_FAST 0 (i)
- 2 LOAD_CONST 1 (2)
- 4 BINARY_MULTIPLY
- 6 RETURN_VALUE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement