Level 1 : What is the purpose of the __enter__ and __exit__ methods in a Python class?

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