例如:class DogOwners(object): def get_this_animal(id, dog_name): return Dog(id=id, name=dog_name)
这将返回一个新对象还是与get_this_animal()的 *args关联的现有对象?
它返回我想要的数据,但我不能告诉如果现在我有两个狗相同的数据
例如:class DogOwners(object): def get_this_animal(id, dog_name): return Dog(id=id, name=dog_name)
这将返回一个新对象还是与get_this_animal()的 *args关联的现有对象?
它返回我想要的数据,但我不能告诉如果现在我有两个狗相同的数据
2条答案
按热度按时间fwzugrvs1#
它将返回一个具有这些属性的新dog,假设Dog(id=标识符,name =dog_name)是你的构造函数。程序没有办法返回与你所写的属性相同的现有狗。如果你不想创建新的狗,那么你需要存储所有狗的数据,并搜索特定的数据,以确保你返回的是同一只狗。这种存储和搜索可以通过几种方式来完成,比如字典、数组/列表等等(字典可能更适合你要做的事情)。
dsf9zpds2#
任何时候运行
Dog(...)
,都是在创建一个新对象(假设你没有对类做任何特殊的操作来改变这个事实)。默认情况下,将类作为函数调用会构造一个新示例。你也可以使用id
来检查这一点:print
将打印两个独立的地址/ID,表明它们是不同的对象。然而,dog_id
和dog_name
对象 * 将 * 是相同的。