"David Merrick" <merrick...@gmail.com> wrote
class BJ_Player(BJ_Hand):
   """ A Blackjack Player. """

   def betting(stash):

You forgot self.... so stash will take on the value of
the instance.


       try:
           if stash > 0:
wager = int(input("\nHow much do you want to wager?: "))
               if wager > bet.stash:
int(input("\n You can only wager what you have. How
much?: "))

and you don't assign the result here to any variables


class BJ_Game(object):
   """ A Blackjack Game. """
   def __init__(self, names):
       self.players = []
       for name in names:
           player = BJ_Player(name)
           bet = BJ_Player(name).betting(stash = 10)

Here you call the method and python assigns the new
instance value to stash, but you are simultaneously
assigning 10 to stash. Pyton is confused...

You need a self in your method definition.

File "I:/Python/Python Source Code/chapter09/blackjackBetting.py", line
120, in __init__
   bet = BJ_Player(name).betting(stash = 10)
TypeError: betting() got multiple values for keyword argument 'stash'


HTH,


--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to