首页 > 解决方案 > 不是在 __init__ 中定义的所有属性?

问题描述

我看过下面的代码。

class Primes:    

   def __init__(self, max):       
       self.max = max        
       self.number = 1

   def __iter__(self):       
       return self

   def __next__(self):        
       self.number += 1        
       if self.number >= self.max:           
           raise StopIteration        
       elif check_prime(self.number):            
           return self.number        
       else:            
           return self.__next__()

在 dunder init 函数中,我们设置self.number=1了 ,而之前没有包含属性number。它的意义是什么?

标签: python

解决方案


此代码仅表示self.number不可自定义,并且1在创建Primes. 这在类需要一个属性时使用,该属性将与它的状态和方法一起使用,但在实例化对象时它的值应该始终相同

def __init__(self, max):       
    self.max = max        
    self.number = 1

推荐阅读