Level 6 : Custom range implementation.


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

    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 = iter(CustomRange(2, 10, 2))
print(list(it))

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