+ 1
What's wrong with this code
class Description: def __init__(self,height,weight,age): self.height = height self.weight = weight self.age = age @property def isTall(self): if self.height > 175: return "Tall" else: return "False" @property def isHeavy(self): if self.weight > 80: return "Heavy" else: return "Not" @property def isOld(self): if self.age > 18: return "Kinda" else: return "Nah" VH = Description([180,78,19]) print(VH.isTall,VH.isHeavy,Vh.isOld)
3 Answers
+ 4
#Line 9 to line 26 has to be indented to be included inside class Description.
#Line 28 parameter is not a list but 3 different parameters.
#There's also a typo on line 29 where VH is written as Vh.
class Description:
def __init__(self,height,weight,age):
self.height = height
self.weight = weight
self.age = age
@property
def isTall(self):
if self.height > 175:
return "Tall"
else:
return "False"
@property
def isHeavy(self):
if self.weight > 80:
return "Heavy"
else:
return "Not"
@property
def isOld(self):
if self.age > 18:
return "Kinda"
else:
return "Nah"
VH = Description(180,78,19)
print(VH.isTall,VH.isHeavy,VH.isOld)
+ 1
Your class expects 3 positional arguments: height, weight, age.
When you initiate it, Description([...]), you are passing a single list argument. Now read the error, it should be clearer.
One more thing, for better Python practice, try to give your classes less general name like Person.
+ 1
thanks guys