Level 1 : What happens when we execute this iterator code?


class StepIterator:
    def __init__(self, start, step, end):
        self.current = start
        self.step = step
        self.end = end

    def __iter__(self):
        return self

    def __next__(self):
        if self.current >= self.end:
            raise StopIteration
        value = self.current
        self.current += self.step
        return value

it = StepIterator(2, 3, 10)
print(list(it))

Author: SandhyaR | Tags: iterator | 1859+ Python FAQs | Share
built-in | binary-operation | handling-missing-values-(fillna,-dropna) | exception | __future__ | encapsulation | functions | library | classes | arbitrary-arguments-(*args,-**kwargs) | collection | factorial-function | booleans | lambdas | boolean-and-non-boolean | class-decorators | benefit | access-modifier | class | arithmetic-expression | encoding | class-and-instance-variable | enumerate() | asyncio | collections | int | join | identity-operator | oop | matrix-list-comprehension | introduction-to-multiprocessing | built-in-function | integer | else-statement | function-argument | scientific-notation | raise-statement | array | numeric | intering | python-syntax-and-structure | random | head-and-tail | python-repl | reading-and-writing-large-files-efficiently | advanced-file-operations | mapping-function | parsing-with-strptime | append | functional-programming | heap-memory | arithmetic-operation | lists | precedence | list-mutation | list-comprehension | list,-set,-and-dictionary-comprehensions | operator-and | membership-operators-(in,-not-in) | input | pseudocode | memory-management | id-function | boolean-masking | call | basic | multiple-inheritance | exponentiation | numpy | odd-number | gil | command-line-parsing | datetime.date,-datetime.time,-datetime.datetime | attribute | interpreter | random-function | __all__-attribute | map-function | expression | precedence-and-associativity | datetime | introduction-to-python | mysql | comment | overflow | control-statement | descriptors | python-history | list-vs-tuple | magic-method | list-slicing | global | nested-loop | postfix | multiprocessing | mutable | math-copysign | pep | else | built-in-function | function | choice | exception-handling | operand | higher-order-function | identity-operators-(is,-is-not) | matrix | assert | logical-operator | async | control-flow | input-function | loop | match | dicts | multithreading | list-comprehension | polymorphism | immutability | dictionaries | method-overloading | immutable-data-type | python-django | min-function | operator-or | default-mutable-argument | min-max-function | center | python | built-in-modules | type-conversion | file_handling | list-operation | debugging | formal-and-actual-parameter | reading:-read(),-readline(),-readlines() | operator | asyncio-module | rollback | slicing | namedtuple | literal-characters-and-special-characters | comparison | import-method | class-and-inheritance | lambda | identifier | defining-functions | list-methods-and-slicing | reading-and-writing-files | file-handling | string | module | constructor | set | keyword | binary | oops | sets | conditional-statement | complex | boolean | compute | slice | anchors-(^,-$) | string-method | introduction-to-threads | shallow-copy | docstring | sorting-and-ranking | init | invalid-list | set-operation | sys-module | regex | swapping | regular-expressions | strings | using-os-and-pathlib-modules | why-use-multiprocessing-over-threading?-(gil) | yield | assignment-operator | floating-point-precision | iterable | global-keyword | string-manipulation | assignment-operators | statement | tuple-unpacking | recursion | data-type | application | zip-function | string-formatting | string-formatting | stack | string-concatenation | thread | version-check | split | bitwise-operator | context-manager | writing:-write(),-writelines() | inheritance | syntax-error | dictionary-comprehensions | string-slicing | sum() | walking-through-directories-using-os.walk() | single-inheritance | inherit | directory-operations | touples | sys | tuples | complex-number | string-slicing | sorting | using-yield-in-functions | threading | test-discovery | identity-operator | deep-copy | sorted | installation | bitwise | with-statement | __init_subclass__ | working-with-binary-files-(rb,-wb) | aggregating-data-with-functools.reduce() | data-type-conversions | lambda-functions | data-structures | round | generators-in-python | update | creating-custom-modules | iterator | using-else-and-finally | staticmethod | syntaxerror | dictionary | software-design | string-methods | using-map()-for-transformations | logical-operator | list-method | while-loop | feature | class-and-object | methods | error | virtual-environment | error-handling | object-attribute | list-join | implementation | python_version | data-structures-in-python | data-structure | copy | fabs-function | working-with-temporary-files-using-tempfile | data-structure | pandas | variable | control-flow | floats | conversion | condition | creating-and-starting-threads | def | dataframe-and-series-objects | counter-function | counter | design-principle | data_structure | conditional-statements | conditional-statement | indentation | dictionary-methods | difference-between-threads-and-processes | data-types | expand-tab | input-function | list-indexing | escape-operator | default-arguments | destructor | filtering-and-indexing | iterators | decimal | frozenset | data-type | file-handling | decorator | datatype | key-value-pairs | indexing:-loc-vs-iloc | generators | bitwise-operator | integers | filter | formatting-with-strftime | filter-function | functional-programming | goto-function | indexing | list-comprehensions | exception-handling | joining-and-merging-dataframes | for | global-variable | file | sum-function | list | unit-testing | function-and-scope | package-management | recurssion | managing-directories-with-os-and-shutil | error-handling | using-assertions-(assertequal,-assertraises) | generator | global-variable | format | lambda-function | raise | while-else-loop | operators | syntax | string-iteration | parameter | using-the-threading-module | round-function | regular-expression | objects | working-with-dates-and-times | thread-synchronization | while-loops | syntax-error | working-with-file-paths | while-and-for-loop | loop-control-statements | thread-safe-data-structures-(queue.queue) | python-module | return-statement | tuple-methods | matplotlib | range | type-conversion | zfill-function | loop-control | static-method | loops | pass | logical-operation | string-method | overriding-methods | using-join()-and-is_alive()-methods | turtle | zip | operations | print | memory | print-statement | quantifiers-(*,-+,-?,-{}) | method | tuple | time-series-with-pandas | max-min | operator-overloading | version | opening-files-(open()) | typeerror | mathematics | virtual-environment | using-lists-as-stacks | namespace | logical-operators | math | name-mangling | mathematical-function | multiple-inheritance | type-conversion-and-casting | pickling--unpickling | python-operators | multiple-except-blocks | type_conversion | comprehension ...