在Python中创建对象时使用self
我上了几个课程,它们都在做同样的事情,但我仍然不完全理解其中的区别,哪一个是最好的。另外,第四个对象不工作。上面写着“NameError:name'self'没有定义”,尽管我不明白出了什么问题。这是我写的,输出是7,7,7,0:在Python中创建对象时使用self,python,object,self,Python,Object,Self,我上了几个课程,它们都在做同样的事情,但我仍然不完全理解其中的区别,哪一个是最好的。另外,第四个对象不工作。上面写着“NameError:name'self'没有定义”,尽管我不明白出了什么问题。这是我写的,输出是7,7,7,0: class addTwoNumbers1(object): def __init__(self, number1, number2): self.number1 = number1 self.number2 = number2
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 for adding two 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
提前感谢您的建议。好吧,您的类看起来应该是一个函数,但我假设这只是一个示例。话虽如此
当您的对象需要存储构成它的值以及它们产生的结果时,这非常有用:
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 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
没有。没有道理。这是一个类变量 类addTwoNumbers4(对象):
行
result=self.number1+self.number2
应该在函数内部,因为self只在方法内部被识别感谢您的澄清