import dis
#def fib(n):
# if n<=2:
# return 1
# print(id(fib))
# return fib(n-1) + fib(n-2)
#dis.dis(fib)
#print(fib(5))
#python feature way
def fib1(n):
if n<=2:
return n
current, next=0,1
while n:
current, next =next, current + next
n =n-1
return current
#print(fib1(5))
#dis.dis(fib1)
def fib2(n):
a,b =0,1
result=()
for _ in range(n):
#result +=(a,)
a,b=b, a+b
return a
#print(fib2(5))
#dis.dis(fib2)
print(fib2.__code__) # function address
print(fib2.__code__.co_consts) #return tuple, all constants inside function
print(fib2.__code__.co_varnames) # tuple o #tuple of local variable inside function
print(fib2.__code__.co_code)#actual byte code