只是一个简单的问题,所以我有一个名为animal
的课程,当你创建课程时,你可以用dogName
初始化它。
class animal:
def __init__(self, dogName):
self._owner = ""
self._address = ""
def setOwnerDetails(self, name, address):
self._owner = name
self._address = address
def getDetails(self):
return self._owner, self._address
def getName(self):
return self.dogName
##Does not work, trying to access constructor argument.
因此,当您使用值为dogName初始化实例时,在此实例中Dogname为Lucy,如何在方法中访问此值? 我知道我可以通过创建一个实例变量来做到这一点,但还有其他方法可以做到这一点。上面可以理解的变量不起作用,但还有其他方法吗?
dog1 = animal("Lucy")
dog1.setOwnerDetails("Thomas", "35 Trop")
result = dog1.getDetails()
print(dog1.getName()) # trying to print the dog Name that is in the constructor argument.
任何帮助将不胜感激,我可能没有解释清楚。
答案 0 :(得分:1)
您需要在构造函数中将dog_name
设置为实例属性:
def __init__(self, dog_name):
self._owner = ""
self._address = ""
self.dog_name = dog_name
然后,您将能够使用self.dog_name
访问方法中的属性。
除了:正如@jonrsharpe在评论中提到的那样,为了符合PEP-8,您应该将变量名称从dogName
更改为dog_name
。