Hey Everybody, I took Kent's advice and changed the design of the script. Tell me what you think!
#!/usr/bin/python class Widget(object): def __init__(self,widget_number): self.widget_number = widget_number #print "Created Widget %d" % widget_number class Cart(object): def __init__(self,name): self.name = name print "Created " + self.name def add_widgets(self,number_widgets): for n in range(number_widgets): widget = Widget(n + 1) print "I put %d widgets in the cart!" % number_widgets class User(object): def __init__(self,name="John Doe"): self.name = name print "Hello " + self.name + "!" self.cart_number = 0 self.cart_list = [] self.cart_dict = {} def buy_widgets(self,cart_name,number_widgets): cart = Cart(cart_name) self.cart_number = self.cart_number + 1 self.cart_list.append(cart.name) cart.add_widgets(number_widgets) self.cart_dict[cart_name] = number_widgets def carts_info(self): print "You have %d carts!" % self.cart_number for i, c in enumerate(self.cart_list): print "%d) %s has %d widgets" % (i+1, c, self.cart_dict[c]) if __name__ == '__main__': user_name = raw_input("Enter your name: ") user = User(user_name) print "You can " print "1) Buy a widget" print "2) List your carts" print "3) Quit" while True: while True: choice = raw_input("Pick an option: ") try: choice_int = int(choice) break except ValueError: print "Invalid choice!" print "Try again!" if choice_int == 1: cart_name = raw_input("Enter the name of your cart: ") number_widgets = raw_input("How many widgets do you want? ") number_widgets_int = int(number_widgets) user.buy_widgets(cart_name,number_widgets_int) elif choice_int == 2: user.carts_info() elif choice_int == 3: print "Goodbye!" break else: print "Invalid Choice!" print "Try Again!" --- On Tue, 8/12/08, Kent Johnson <[EMAIL PROTECTED]> wrote: > From: Kent Johnson <[EMAIL PROTECTED]> > Subject: Re: [Tutor] ecommerce.py > To: [EMAIL PROTECTED] > Cc: tutor@python.org > Date: Tuesday, August 12, 2008, 4:01 AM > On Tue, Aug 12, 2008 at 1:41 AM, Christopher Spears > <[EMAIL PROTECTED]> wrote: > > I am not sure how to handle putting Widgets into a > Cart. Somehow, I need the user to be able to select the > Cart he or she wants and then put Widgets in it. Any hints? > > You figured out how to put a Cart in a User, I guess you > want > something similar - a cart should have a list of widgets. > > Maybe the problem asks for it, but usually an online shop > has just one > cart per user and the cart is created for you when you ask > to buy > something. If you use that design it might be simpler. > > Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor