2016-12-02 3 views
0

Ich versuche ein Programm zu erstellen, das Klassen und Methoden verwendet, um ein Restaurant zu machen. Mit einem Restaurant meine ich, dass es ihren Namen, die Art von Essen, die sie servieren, und wenn sie öffnen.Wie kann ich Objekte aus einer Liste drucken?

Ich habe das erfolgreich gemacht, aber jetzt versuche ich einen Eiscremestand zu erstellen, der von seiner Elternklasse erbt (Restaurant) und eine Kinderklasse macht (IceCreamStand). Mein Problem ist, dass, wenn ich die Liste der Eiscremearomen in einem Attribut (flavor_options) speichere und es drucke, es die Liste mit den Klammern drumherum druckt.

Ich möchte nur die Elemente in der Liste in einem regulären Satzformat drucken. Jede Hilfe wird sehr geschätzt, danke!

#!/usr/bin/python 

    class Restaurant(object): 
     def __init__(self, restaurant_name, cuisine_type, rest_time): 
      self.restaurant_name = restaurant_name 
      self.cuisine_type = cuisine_type 
      self.rest_time = rest_time 
      self.number_served = 0 

    def describe_restaurant(self): 
     long_name = "The restaurant," + self.restaurant_name + ", " + "serves " + self.cuisine_type + " food"+ ". It opens at " + str(self.rest_time) + "am." 
     return long_name 

    def read_served(self): 
     print("There has been " + str(self.number_served) + " customers served here.") 

    def update_served(self, ppls): 
     self.number_served = ppls 

     if ppls >= self.number_served: 
      self.number_served = ppls # if the value of number_served either stays the same or increases, then set that value to ppls. 
     else: 
      print("You cannot change the record of the amount of people served.") 
      # if someone tries decreasing the amount of people that have been at the restaurant, then reject themm. 

    def increment_served(self, customers): 
     self.number_served += customers 

class IceCreamStand(Restaurant): 
    def __init__(self, restaurant_name, cuisine_type, rest_time): 

     super(IceCreamStand, self).__init__(restaurant_name, cuisine_type, rest_time) 
     self.flavors = Flavors() 

class Flavors(): 
    def __init__(self, flavor_options = ["coconut", "strawberry", "chocolate", "vanilla", "mint chip"]): 
     self.flavor_options = flavor_options 

    def list_of_flavors(self): 
     print("The icecream flavors are: " + str(self.flavor_options)) 

icecreamstand = IceCreamStand(' Wutang CREAM', 'ice cream', 11) 
print(icecreamstand.describe_restaurant()) 
icecreamstand.flavors.list_of_flavors() 

restaurant = Restaurant(' Dingos', 'Australian', 10) 
print(restaurant.describe_restaurant()) 

restaurant.update_served(200) 
restaurant.read_served() 

restaurant.increment_served(1) 
restaurant.read_served() 
+2

"" .join (flavor_options) – Eric

+2

Verwendung '““.join (self.flavor_options)' statt 'str (...)' – mitoRibo

+0

Dank Menge! Es funktioniert jetzt –

Antwort

2

Sie wollen würde .join() verwenden, um die Liste in einer einzigen Saite zu kombinieren.

I.E.

flavor_options = ['Chocolate','Vanilla','Strawberry'] 

", ".join(flavor_options) 

Dies würde Ausgabe:

"Chocolate, Vanilla, Strawberry" 
+0

Vielen Dank, es hat seinen Job gemacht –

Verwandte Themen