"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