在制作遗传算法时,我有一个Individu
类:
class Individu:
genotype: List[int]
code: List[int]
phenotype: List[List[Client]]
fitness: float
大多数情况下,程序中只使用属性genotype
(用于跨越父项或计算适应度)
现在,当我需要使用p1.genotype[]
时,我可以不总是写它,而是让Individu
可写,这样我就可以写p1[]
了,或者这是个坏主意
我觉得这会让我的程序更干净,但同时也会让其他人感到困惑,或者“打破”某种编程最佳实践
您似乎在谈论索引,而不是迭代本身。索引由
__getitem__
方法处理,而迭代由__iter__
/iter
处理。您可以为类定义这些方法以将工作转发到genotype
属性:就我个人而言,我不会这样做,因为这种间接寻址是额外的工作,可能不是您想要转发到
genotype
属性的所有内容,并且模糊了iterable的真正位置。但是如果它适合你的用例,那么就去做吧相关问题 更多 >
编程相关推荐