Can you use self in __str__

Chris Angelico rosuav at gmail.com
Thu Nov 27 20:43:52 EST 2014


On Fri, Nov 28, 2014 at 12:26 PM, Seymore4Head
<Seymore4Head at hotmail.invalid> wrote:
> dealer=Hand()
> player=Hand()
> This prints out 'Hand contains " foo bar
> for both the dealer's hand and the player's hand.
>
> Is there a way to include "self" in the __string__ so it reads
> Dealer hand contains foo bar
> Player hand contains foo bar

No, you can't. You're assuming that the name bound to an object is
somehow part of that object, but it isn't. What would happen if you
did this:

print(Hand())

There's no name, so you can't get that information. The only way to do
it would be to pass that to the Hand object, but you may as well
simply print it out separately.

ChrisA



More information about the Python-list mailing list