python - 不是在 __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
。它的意义是什么?
解决方案
此代码仅表示self.number
不可自定义,并且1
在创建Primes
. 这在类需要一个属性时使用,该属性将与它的状态和方法一起使用,但在实例化对象时它的值应该始终相同
def __init__(self, max):
self.max = max
self.number = 1
推荐阅读
- python - python中的继承:在现实生活中正确使用__init__和super()
- python - 使用 Upsert 将字典对象列表批量插入 Postgres
- python - 为什么我得到一个 TypeError:__init__() 在 python sklearn 中有一个意外的关键字参数“outer_cv”?
- regex - 在本地跨多个文件查找和替换正则表达式
- r - 如何创建一个表格来计算 R 中两个单独表格中值之间的百分比变化?
- python - 调试 pypi 打包:pip install 成功,但导入时 ModuleNotFound
- ios - 在 Xcode 中捏合缩放行为不端
- python - curve_fit 还是 polyfit?对数或无对数转换?
- reactjs - 如何在函数组件中添加参数
- html - 如何将网络抓取的数字放入数据框中,自动刷新时添加到数据框中