Can you use self in __str__
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Fri Nov 28 02:44:24 EST 2014
Seymore4Head wrote:
> On Fri, 28 Nov 2014 11:04:26 +0800, Shiyao Ma <i at introo.me> wrote:
>
>>2014-11-28 9:26 GMT+08:00 Seymore4Head <Seymore4Head at hotmail.invalid>:
>>> def __str__(self):
>>> s = "Hand contains "
>>> for x in self.hand:
>>> s = s + str(x) + " "
>>> return s
>>>
>>> This is part of a Hand class. I need a hand for the dealer and a hand
>>> for the player.
>>> 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
>>
>>I bet you want the object name (aka, dealer, player) be included in
>>the string 's'.
>
> That is exactly what I want, but your explanation is too complicated
> for my feeble mind to get just yet.
Shiyao Ma's explanation is too complicated for *my* feeble mind to get, and
I've been using Python for over 15 years. Either I have no idea what Ma is
trying to say, or Ma has no idea what (s)he's trying to say.
:-)
>>To that end, you need to access the namespace where 'self' is in.
`self` is a local variable of the method. Accessing the local namespace is
automatic.
--
Steven
More information about the Python-list
mailing list