首先,我不知道这个问题最合适的题目是什么。竞争者:“如何在自定义类中实现list.append
”。在
我有一个class
,叫做Individual
。以下是课程的相关部分:
from itertools import count
class Individual:
ID = count()
def __init__(self, chromosomes):
self.chromosomes = list(chromosomes)
self.id = self.ID.next()
我想在这门课上做些什么:
假设我实例化了一个没有染色体的新个体:indiv = Individual([])
,我想稍后给这个个体添加一个染色体。目前,我必须:
相反,我最理想的做法是:
indiv.append(makeChromosome(params))
同样的效果。在
所以我的问题是:当我在一个列表中调用append
时,幕后到底发生了什么?是否有一个__append__
(或__foo__
)被调用?在我的Individual
类中实现该函数会得到我想要的行为吗?在
例如,我知道我可以在Individual
中实现__contains__
,以启用if foo in indiv
功能。如何启用indiv.append(…)
功能?在
^{} 只是一个接受一个参数的方法,您可以轻松地自己定义一个:
不需要神奇的方法。在
相关问题 更多 >
编程相关推荐