我有两个类,我需要能够互相交谈,主要是一个从另一个数据。我省略了所有不需要的东西。你知道吗
class dog(object):
def __init__(self,name):
self.name = name
def getOwner(self):
return self.name
class shelter(object):
def getName(self,dogName):
return dogName.getName()
doggy = dog("Rover")
animalHouse = shelter()
print animalHouse.getName("rover")
唯一返回的是AttributeError: 'shelter' object has no attribute 'getName'
那么,如何在我的庇护所类中使用dog类的getName函数呢?你知道吗
你的方法真的不是面向对象的。
shelter
的意义是什么?您可以直接在doggy
实例上调用getOwner
。想想你正在处理的物体的物理现实。你有一个dog
和一个shelter
。收容所如何与狗互动?你知道吗最简单的方法就是放一个进去。所以写下这个方法。让我们给你的庇护所一个
resident
属性:现在,最好让
shelter
始终定义该属性,所以让我们在初始值设定项中这样做:当我们在这里的时候,让我们给自己一个能力,在我们创建庇护所的时候,指定一个居住者:
这是在利用python的“default属性”特性。您可以指定该参数,也可以不指定;如果不指定,则默认为
None
。如果这很混乱,可以跳过此步骤。你知道吗考虑到所有这些(并且有
put
一个dog
),现在我们有一个shelter
包含None
或dog
。现在让我们编写getName
方法。你知道吗其他注释:你的类应该以大写字母开始命名,你的方法应该使用下划线来分隔单词,而不是使用mixedCase。所以类的
Shelter
,方法的get_name
。这是根据python命名约定的,请参见pep8了解所有血腥的细节。:)您没有指定
getName
函数。我认为您希望在dog
类中声明getName
,而不是getOwner
,并且需要将dog
的实例传递给函数。你知道吗最后:
相关问题 更多 >
编程相关推荐