Level 9 : What happens when we execute this code?


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

    def __iter__(self):
        return self

    def __next__(self):
        if self.current >= self.end:
            raise StopIteration
        val = self.current
        self.current *= 2
        return val

it = MultiplyByTwo(1, 20)
print(list(it))

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