On Fri, Feb 10, 2017 at 8:05 PM, eryk sun <eryk...@gmail.com> wrote: > Speaking of classes and metaclasses, note that you can't call > int.__repr__(int) to get this representation, because the __repr__ > special method of int is meant for instances of int such as int(5).
This bit got me experimenting. Since the integer "5" is an integer object instance, I am wondering why I can't do: py3: 5.__repr__() File "<stdin>", line 1 5.__repr__() ^ SyntaxError: invalid syntax , but I can do: py3: x = 5 py3: x.__repr__() '5' ? More experimentation. Is this how I would define __repr__() for a custom class? py3: class boB: ... def __repr__(self): ... return "<boB's namesake class>" ... py3: x = boB() py3: repr(x) "<boB's namesake class>" Seems to work. But in class examples I've seen posted, I do not recall __repr__ ever being defined. So I infer that most of the time I should not or need not do so, but under what circumstances should I do so? Another curiosity question. If I type: py3: repr(int) "<class 'int'>" I get what I expect, but if I do the same with my custom class, "boB", I instead get: py3: repr(boB) "<class '__main__.boB'>" Why the difference between the Python class "int" and my custom class "boB"? Did I not define __repr__() correctly? -- boB _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor