Dear tutors In learning about the __call__ magic method, in the code below I deliberately omitted __call__ and, as expected, I got the error message "TypeError: 'Test' object is not callable". But I am surprised that the print statement was not executed, even though the interpreter sees it first. Why is that?
I thought that the Python interpreter executes line by line. That is, in the code below,: -First, it executes the class definition because these 2 lines are what it sees first -Second, it creates an instance of the class Test, called test -Third, it executes the print statement -Only then would it encounter the error of calling the instance as if it were callable class Test(object): pass test = Test() print "I am puzzled. Why isn't this line printed?" test() Making the puzzle worse for me, when I tried adding another print statement before the test = Test() line, the interpreter behaved as I expected! Trung
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor