I've tried reading the python docs on classes, objects and data models but I still don't get it - I suppose that advanced programmers need to write classes but for what I'm able to do, writing a class seems to make things more difficult than they need to be.
I'm trying to write a program that requires me to create an instance of a 'Dog' class with the dog's name and breed as arguments, and append the object to the dogs list. For each user input on the name and breed, the current dogs list should print the name and breed of each dog, example:
1. Marmaduke:Great Dane
I can't figure out how to call the function so I'm not sure if the problem is with the way I'm trying to call the function or the way that I've written the methods in the class. Some of the guidance was fairly specific, for example the init() method should take two parameters, name and breed, in addition to the implicit self.
I've copied the errors below with the offending code, and I don't understand the errors (if I did, I suppose I could fix this).
def __init__(self, name, breed):
self.name = 'Dog Name'
self.breed = 'Dog Breed'
self.dog_list = 
# because 'dogs' in add_dog(**dogs) turned out to be undefined,
# not sure why...
name = raw_input("Enter dog name: ")
breed = raw_input("Enter dog breed: ")
for name, breed in dogs.items():
my_dog = (name.capitalize() + ": " + breed.capitalize())
except name == '':
return dogs, dog_list
if __name__ == "__main__":
zero = Dog(name='Lassie', breed='Retriever') # or
one = Dog('Lassie', 'Retriever')
# prints <__main__.Dog instance at some hex code> for each
Dog.add_dog(one) # type error, method takes 0 args
Dog.add_dog() # or
Dog.add_dog('Goofy', 'mutt') # or
Dog.add_dog(name='Goofy', breed='mutt') # type errors,
# unbound methods must be called with class instance as first argument