开个丸笑 发表于 2018-3-12 12:11:24

零基础入门学习python第48讲迭代器

写一个迭代器,要求输出至今为止所有的闰年

import datetime as dt

class LeapYear:
    def __init__(self):
      self.now = dt.date.today().year

    def isLeapYear(self, year):
      if (year%4 == 0 and year%100 != 0) or (year%400 == 0):
            return True
      else:
            return False
      
    def __iter__(self):
      return self

    def __next__(self):
      while not self.isLeapYear(self.now):
            self.now -= 1

      temp = self.now
      self.now -= 1
      
      return temp
以上编码中,while not self.isLeapYear(self.now)为什么self.isLeapYear(self.now)默认为假呢?

BngThea 发表于 2018-3-12 12:42:19

因为这个函数的实现逻辑上满足闰年才返回True
页: [1]
查看完整版本: 零基础入门学习python第48讲迭代器