Use of self when creating objects in Python -
i made several classes doing same thing, still don't understand difference, , best use. also, 4th object not working. says 'nameerror: name 'self' not defined', although don't understand going wrong. wrote, output 7,7,7,0:
class addtwonumbers1(object): def __init__(self, number1, number2): self.number1 = number1 self.number2 = number2 self.result = number1 + number2 class addtwonumbers2(object): def __init__(self, number1, number2): self.result = number1 + number2 class addtwonumbers3(object): def __init__(self, number1, number2): self.number1 = number1 self.number2 = number2 def add(self): result = self.number1 + self.number2 return result class addtwonumbers4(object): result = 0 def __init__(self, number1, number2): self.number1 = number1 self.number2 = number2 result = self.number1 + self.number2 # test classes adding 2 numbers: addingobject1 = addtwonumbers1(5,2) print addingobject1.result addingobject2 = addtwonumbers2(5,2) print addingobject2.result addingobject3 = addtwonumbers3(5,2) print addingobject3.add() addingobject4 = addtwonumbers4(5,2) print addingobject4.result
thank in advance advice.
well, classes should have been function, i'm assuming that's example. having said that
this useful when object needs store both values constructed it, resulting them:
class addtwonumbers1(object): def __init__(self, number1, number2): self.number1 = number1 self.number2 = number2 self.result = number1 + number2
this useful when object needs store not values constructed it, buj resulting them:
class addtwonumbers2(object): def __init__(self, number1, number2): self.result = number1 + number2
this useful when object needs store values constructed it. result should calculated demand , not part of state of object.
class addtwonumbers3(object): def __init__(self, number1, number2): self.number1 = number1 self.number2 = number2 def add(self): result = self.number1 + self.number2 return result
nope. doesn't make sense. class variable.
class addtwonumbers4(object):
result = 0 def __init__(self, number1, number2): self.number1 = number1 self.number2 = number2 result = self.number1 + self.number2
Comments
Post a Comment