我正在学习Python OOP编程,我正在运行这个小脚本:
class Employee:
def __init__(self, first, last):
self.first = first
self.last = last
emp1 = Employee("Fede", "Cuci")
print emp1.first
print emp1.last
一切都很顺利,直到我注意到,当我创建了一个具有相同属性的方法,并将它们打印出来时,它将取而代之的是那些值:
class Employee:
def __init__(self, first, last):
self.first = first
self.last = last
def fullname(self, first, last):
self.first = first
self.last = last
def other_fullname(self, first, last):
self.first = first
self.last = last
emp1 = Employee("Fede", "Cuci")
emp1.fullname("Fede2", "Cuci2")
emp1.other_fullname("Fede3", "Cuci3")
print emp1.first
print emp1.last
然后我注意到它总是打印出最后一个调用的方法。这是否意味着您应该在每个类中对属性进行不同的命名,并使用这种技术来更新属性的值,或者我在代码中做了一些错误的事情?你知道吗
我认为在每个方法中加入"self"
会使该属性对该特定方法是唯一的,而不是如果我再次尝试打印该属性,它会根据我上次调用的方法更新它的值。。。你知道吗
如果我错了,请纠正我, 提前谢谢
联邦快递
Self是类的实例。如果希望每个方法在对象中存储自己的名称,则需要给它一个唯一的属性。你知道吗
例如
self
是对当前实例的引用。实例上的属性不是每个方法所独有的,不。方法的全部要点是能够操纵实例的状态。你知道吗在每次方法调用后打印这两个属性,您将看到它们随着每个方法操作这些属性而改变:
因此,是的,如果每个方法都需要将自己的状态绑定到实例,则需要使用唯一的名称。你知道吗
如果每个方法的属性都是唯一的,那么就不可能有两个不同的方法对同一条信息进行操作。你知道吗
相关问题 更多 >
编程相关推荐