I made a Python code and called it with a statement.
There is no function that needs to be used separately even if it is used with, so I set it as follows. By the way, if you add the self.close() command to the exit function as follows, the following error message is exposed, did I enter the wrong command? Or is it not necessary to issue a self.close() command?
class a:
def __init__(self):
Rough command code
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, traceback):
Functions to run on shutdown
self.close()
with a() as a:
pass
object has no attribute 'close'
>>> f = open('j.py')
>>> f
<_io.TextIOWrapper name='jj.py' mode='r' encoding='cp949'>
#https://github.com/python/cpython/blob/e03e50377d6f8f212af60fed4ae405ebeb73237d/Lib/_pyio.py#L1983
class TextIOWrapper(TextIOBase):
#https://github.com/python/cpython/blob/e03e50377d6f8f212af60fed4ae405ebeb73237d/Lib/_pyio.py#L1831
class TextIOBase(IOBase):
#https://github.com/python/cpython/blob/e03e50377d6f8f212af60fed4ae405ebeb73237d/Lib/_pyio.py#L327-#L514
class IOBase(metaclass=abc.ABCMeta):
...
def close(self):
...
def __exit__(self, *args):
self.close()
...
It's a class related to open()
_exit _ There is a function for self.close() so I think it works normally
f = open('something', flag)
f.close()
with open('something',flag) as a:
pass
The above two are the same.
The reason is that with is controlled by _enter_ and _exit_magic method, as in the initial question sentence.
Also, the contents returned to open() are designated with the correct wrapper class according to the flag at the end
Therefore, the close() function of the Wrapper Class is specified to clear the space that is malloc after the file is read (after the end of use) for that class. Close(): Note
of the above IOBaseIn addition, when using with, the _exit_ method to finally release the used memory calls the close() function.
However, unlike IOBase class in question code statements, a class does not have a close() function defined.
I think you may have been confused because the class IOBase Class
returned from the open() function is commonly used for use with.
© 2024 OneMinuteCode. All rights reserved.