On Mon 14 Jan 2013 10:14:24 PM EST, DoanVietTrungAtGmail wrote:
Dear tutorsIn 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 - [email protected] To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
It does print the line for both in 2.7 and 3.3. - mitya -- Lark's Tongue Guide to Python: http://lightbird.net/larks/ _______________________________________________ Tutor maillist - [email protected] To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
