Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Как правильно работать with python оператор?

  1. Как правильно работать with python оператор?

    Привет, ребята! Я только начал изучать питон и наткнулся на штуку под названием "with" оператор. Пытаюсь понять его правильно и для чего он вообще нужен. Может кто-нибудь объяснить, как его правильно использовать, особенно с файлами, и в чем его преимущества перед обычным способом открытия файлов? Код примеры приветствуются!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! with оператор это реально годная вещь в Питоне. Он помогает работать с ресурсами, которые нужно потом закрыть, типо файлы или соединения с БД. Например, когда ты открываешь файл, с with не нужно потом заботиться о его закрытии, все делается автоматически. Вот пример:

    Программный код:
    with open('myfile.txt''r') as f:
        
    data f.read() 
    Тут файл откроется и закроется автоматически после выхода из блока with. Красиво и удобно!

  4. Цитата Сообщение от NinaExplorer
    Привет! with оператор это реально годная вещь в Питоне. Он помогает работать с ресурсами, которые нужно потом закрыть, типо файлы или соединения с БД. Например, когда ты открываешь файл, с with не нужно потом заботиться о его закрытии, все делается автоматически. Вот пример:

    Программный код:
    with open('myfile.txt''r') as f:
        
    data f.read() 
    Тут файл откроется и закроется автоматически после выхода из блока with. Красиво и удобно!
    О, круто! Я думал это что-то сложное, а тут все просто и понятно становится с таким примером. Спасибо!

  5. Чувак, with оператор - твой бро для чистого кода. Вообще с ним меньше головняка, особенно с файлами. Этот блок кода сам следит за закрытием файла, когда все оканчивается. Меньше шансов на баги!

  6. Цитата Сообщение от Бабочка
    Чувак, with оператор - твой бро для чистого кода. Вообще с ним меньше головняка, особенно с файлами. Этот блок кода сам следит за закрытием файла, когда все оканчивается. Меньше шансов на баги!
    Да, согласен, багов и так хватает, не хотел бы еще и с файлами мучаться.

  7. Накину еще примерчик для тех, кто любит понимать наглядно. Вот тебе с учетом записи в файл:

    Программный код:
    with open('myfile.txt''w') as f:
        
    f.write('Hello, world!'
    Просто и удобно.

  8. Цитата Сообщение от Sauron
    Накину еще примерчик для тех, кто любит понимать наглядно. Вот тебе с учетом записи в файл:

    Программный код:
    with open('myfile.txt''w') as f:
        
    f.write('Hello, world!'
    Просто и удобно.
    Thanks, бро! Примеры всегда помогают понять лучше, чем просто теория.

  9. Эй, привет! Я еще добавлю, что with оператор часто используется с многими Python объектами которые требуют очистки состояния. Круто работает с файлами, как тут уже показано, но также с БД и сетевыми соединениями. Его основное преимущество - это предотвращение утечек ресурсов. Вот более сложный пример для лучшего понимания. Сначала используем базовый пример для чтения файла:

    Программный код:
    with open('myfile.txt''r') as f:
        
    content f.read()
        print(
    content
    Теперь пример с сетевым соединением:

    Программный код:
    import socket

    class SocketManager:
        
    def __init__(selfhostport):
            
    self.host host
            self
    .port port
            self
    .sock None

        def __enter__
    (self):
            
    self.sock socket.socket(socket.AF_INETsocket.SOCK_STREAM)
            
    self.sock.connect((self.hostself.port))
            return 
    self.sock

        def __exit__
    (selfexc_typeexc_valexc_tb):
            
    self.sock.close()

    with SocketManager('localhost'8080) as s:
        
    s.sendall(b'Hello, world!')
        
    response s.recv(1024)
        print(
    'Received'repr(response)) 
    Он закроет соединение автоматически, даже если в коде возникает ошибка. Это мега полезно, когда работаешь с реальными проектами. Надеюсь, теперь понятно!

  10. Цитата Сообщение от Ignat
    Эй, привет! Я еще добавлю, что with оператор часто используется с многими Python объектами которые требуют очистки состояния. Круто работает с файлами, как тут уже показано, но также с БД и сетевыми соединениями. Его основное преимущество - это предотвращение утечек ресурсов. Вот более сложный пример для лучшего понимания. Сначала используем базовый пример для чтения файла:

    Программный код:
    with open('myfile.txt''r') as f:
        
    content f.read()
        print(
    content
    Теперь пример с сетевым соединением:

    Программный код:
    import socket

    class SocketManager:
        
    def __init__(selfhostport):
            
    self.host host
            self
    .port port
            self
    .sock None

        def __enter__
    (self):
            
    self.sock socket.socket(socket.AF_INETsocket.SOCK_STREAM)
            
    self.sock.connect((self.hostself.port))
            return 
    self.sock

        def __exit__
    (selfexc_typeexc_valexc_tb):
            
    self.sock.close()

    with SocketManager('localhost'8080) as s:
        
    s.sendall(b'Hello, world!')
        
    response s.recv(1024)
        print(
    'Received'repr(response)) 
    Он закроет соединение автоматически, даже если в коде возникает ошибка. Это мега полезно, когда работаешь с реальными проектами. Надеюсь, теперь понятно!
    Этот пример с сокетами вообще крутота! Теперь вспомню, где я уже не закрыл соединение и правлю баги.

Страница 1 из 2 12 ПоследняяПоследняя