Class Question - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Class Question (/thread-10462.html) |
Class Question - esteel - May-22-2018 I'm messing around with Class' and I have a python3 file with the following code: class playerstats(object): def __init__(self, name, baselevel=1, hp, mana, basedmg=0, atkdmg, basedef=0, chardef): self.name = name self.baselevel = baselevel self.hp = hp self.mana = mana self.basedmg = basedmg self.atkdmg = atkdmg self.basedef = basedef self.chardef = chardef return self.name, self.baselevel, self.basedmg, self.basedef def selectedclass(self, chosenclass): if chosenclass == 'W' or chosenclass == 'w': self.hp = 100 self.mana = 50 elif chosenclass == 'M' or chosenclass == 'm': self.hp = 75 self.mana = 100 else: print('Error') return self.hp, self.mana charcreation = playerstats('Tom', baselevel, self.chosenclass, self.chosenclass, basedmg, 0, basedef, 0) self.chosenclass = 'w' print(playerstats.hp)When I run it, I get this Error: Can someone help me understand why?
RE: Class Question - Rajesh1978 - May-22-2018 The default argument should be at the end and no non-default argument should follow that. RE: Class Question - esteel - May-22-2018 Can you elaborate a little? I'm pretty new to python and I'm doing this as a learning exercise. I'm not 100% familiar with terms yet RE: Class Question - Rajesh1978 - May-22-2018 take all the default arguments to the end of the function declaration like def __init__(self, name, hp, mana, atkdmg, chardef baselevel=1,basedmg=0, basedef=0):And call accordingly RE: Class Question - volcano63 - May-22-2018 (May-22-2018, 09:41 AM)Rajesh1978 Wrote: take all the default arguments to the end of the function declaration likeThose are called keyword arguments - not default arguments; they have default values
RE: Class Question - esteel - May-22-2018 aaahhhhh understoof. Thank you guys |