簡體   English   中英

Python中itertools.count的相等性

[英]Equality of itertools.count in Python

考慮交互式Python代碼:

>>> from itertools import count
>>> count(0) == count(0)
False

為什么這里沒有實現平等並默認使用身份? 這是故意的還是僅僅是疏忽?

編輯:我沒有使自己足夠清楚。 正如馬丁·皮耶特斯(Martijn Pieters)在評論中指出的那樣,我希望相等性可以表示為起點的相等性,而不知道count對象也可以跟蹤迭代器的當前狀態。

為了總結Martijn Pieters和JF Sebastian對我的問題所提供的有用的意見,並以此結束該問題: itertools.count被設計為迭代器,從而跟蹤其當前迭代狀態。 因此,不清楚如何定義平等。

我以以下方式完成包裝計數以實現預期的行為:

import itertools

class count(object):

    def __init__(self, start=0, step=1):
        self.start = start
        self.step = step

    def __eq__(self, other):
        return self.start == other.start and self.step == other.step

    def __iter__(self):
        return itertools.count(self.start, self.step)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM