Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 Problems with inheritance with classes
I'm getting a type error.
I want to write a subclass and add an attribute to it, then write a method to display the attribute and call the method.

Class Restaurant ():

def __init__(self, restaurant_name, cuisine_name):
self.restaurant_name = restaurant_name
self.cuisine_name = cuisine_name

def describe_restaurant (self):
print("This is " + name.title())
print(self.cuisine_name.title() + " is the only cuisine right now")

def open_restaurant(self):
print(self.restaurant_name.title() + " is open for business ")

class IceCreamStand(Restaurant):

def __init__(self, restaurant_name, cuisine_name):
super().__init__(restaurant_name, cuisine_name)
self.flavors = flavors

def print_flavors(self):

IceCream = IceCreamStand('dominos', 'pizza', 'BBQ')

So basically, I have a class Restaurant and I have a subclass IceCreamStand and I added an attribute flavors to the subclass and a method print_flavors to display the flavors, then I have to call the method.

The specific error I get is TypeError: __init__ takes 3 positional arguments but 4 were given.
Any help would be appreciated.
2 parameters defined, 3 arguments given
class IceCreamStand(Restaurant):
def __init__(self, restaurant_name, cuisine_name):
super().__init__(restaurant_name, cuisine_name)
self.flavors = flavors

IceCream = IceCreamStand('dominos', 'pizza', 'BBQ')
Hey. I have a similar program and it works perfectly for me. Hope it helps.
class Restaurant():
	"""Information storage for restaurants"""
	def __init__(self,name,cuisine):
	def describe_rest(self):
		if first.lower()=='a' or first.lower()=='i' or first.lower() =='o' or first.lower()=='u' or first.lower()=='e':
			print( + " " + "is an " + self.cuisine.title()+ " " + "restaurant")
			print( + " " + "is a " + self.cuisine.title()+ " " + "restaurant")
	def rest_open(self):
		print( " " +  "is open now")
	def number_served(self):
		"""Prints the number of customers serves by the restaurant"""
		number=str(self.served) + " " + "customers have been served"
		return number 
	def set_number_served(self,people):
		"""Allows to set the number of people served"""
		print(str(self.people)+ " " + "people have been served")
	def increment_served_people(self,people_served):
		"""Adjusts the number of people served by providing option to increment"""
		print("Number of customers served is " + " " + str(self.people+people_served))
class IceCream_Stand(Restaurant):
	def __init__(self,name,cuisine):
	def flavours(self):
		self.flavours.append('rocky road')
		self.flavours.append('cotton candy')
		print("Flavours availale today are:")
		for flavour in self.flavours:
			print("\n\t" + flavour.title())
my_icecream=IceCream_Stand('pinkertons' , 'desserts')
This drives me nuts to see in python
print( + " " + "is an " + self.cuisine.title()+ " " + "restaurant")

As it should be
print(f'{} is an {self.cuisine.title()} restaurant')
or at the very worst if they dont have python3.6+
print('{} is an {} restaurant'.format(, self.cuisine.title()))
ThomasL, micseydel, noisefloor like this post

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  Unexpected Output using classes and inheritance langley 2 180 Jul-04-2019, 09:33 AM
Last Post: langley
  Inheritance Athul 7 700 Aug-11-2018, 06:48 PM
Last Post: yksingh1097
  inheritance Arifattal 3 943 Jan-15-2018, 02:52 PM
Last Post: Arifattal
  Problems with importing classes in different folder Xeraphim 3 962 Nov-08-2017, 03:20 PM
Last Post: Larz60+
  Using classes? Can I just use classes to structure code? muteboy 5 1,357 Nov-01-2017, 04:20 PM
Last Post: metulburr

Forum Jump:

Users browsing this thread: 1 Guest(s)