On 11/27/2014 10:31 PM, Seymore4Head wrote:
On Thu, 27 Nov 2014 21:49:29 -0500, Dave Angel <da...@davea.name>
wrote:

class Hand:
     def __init__(self):
         self.hand = []
         # create Hand object

     def __str__(self):
         s = 'Hand contains '
         for x in self.hand:
             s = s + str(x) + " "
         return s

I am using 2.7 (Codeskulptor).  This is working code.  It starts with
an empty list that gets appended from a full deck of shuffled cards.
dealer=Hand()
player=Hand()
I don't really know how to post working code without posting a lot.  I
am not being too successful in trying to post enough code to have it
work without posting the entire code.
Here is the link if you want to run it.
http://www.codeskulptor.org/#user38_Kka7mh2v9u_9.py
The print out looks like this:
Hand contains H4 DQ.

I can (and am) currently printing the hand like this:
print "Player's",player
print "Dealer's",dealer

My question is can you add (self) in the __str__ so when you issue the
command "print player" the "player" part is included in the __str__.


You've already got self in the __str__ method, or you wouldn't have access to self.hand. But there's no characteristic of 'self' that has any idea of a name like "dealer" or "player". You have to add that if you want it, as I suggested in my first guess. Steven has shown you as well, along with a better explanation.

An object does NOT know the name or names that may be bound to it, any more than I know what page of the county register has my birth certificate recorded. If I want to know my own name, I'd better remember it. Along with any nicknames I want to respond to. The way to do it is the same way to know the hand that I hold, make an instance attribute. And the place to do that is in the __init__() method.


class Hand:
    def __init__(self, myname):
        self.hand = []
        # create Hand object
        self.name = myname

    def __str__(self):
        s = self.name + ' contains '
        for x in self.hand:
            s = s + str(x) + " "
        return s


dealer=Hand("Dealer")
player=Hand("Player")



--
DaveA
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to