I am a python leaner, right now I using compile
function to get a variable from input
def main():
c = compile("n = int(input('>>>'))", "", "single")
exec(c)
print(n) # NameError: name 'n' is not defined
if __name__ == '__main__':
main()
c = compile("n = int(input('>>>'))", "", "single")
exec(c)
print(n) # good, no error
same code has different effects in main()
or under if __name__ == '__main__':