contextmanager

    0

    1답변

    파이썬에서 전역 적으로 기능을 일시적으로 사용할 수 없도록하는 컨텍스트 관리자를 작성하고 싶습니다. 그런 일은 일반적으로 가능합니까? 여기에 원하는 동작의 예는 다음과 같습니다 나는 원칙적으로, 나는 일시적으로 x.disable_me에 lambda *args, **kwargs: None을 할당 할 수 있지만, 상황에 맞는 관리자가 실제로이 작업을 수행 할

    2

    3답변

    내 디자인은 다음과 같습니다 : aa b b b a a__main__ 따라서 a 및 b 순환 참조가있다. 그러나 del a에 나는 a과 b를 모두 처분 할 것을 선호합니다. 컨텍스트 매니저를 사용하는 많은 조언과 특히 __del__() 대신 with 문을 보았습니다. 그러나 with의 모든 예제는 로컬 범위에서 시작하고 끝납니다 (예 : 특정 방법). wi

    117

    4답변

    컨텍스트 관리자를 통해 획득 한 세 개의 개체 (예 : 잠금, db 연결 및 ip 소켓)가 있다고 가정합니다. 다음과 같은 방법으로 그들을 얻을 수 있습니다 : with lock: with db_con: with socket: #do stuff 그러나 하나 개의 블록에 그것을 할 수있는 방법은 무엇입니까? 대답은 "아니오

    1

    2답변

    다음과 같은 적절한 방법이 있습니까? SerialPorts 및 SerialPort 컨텍스트 관리자 인터페이스를 구현 with SerialPorts() as serial_ports: in= SerialPort("COM1") serial_ports.add(in) out = SerialPort("COM2") serial_por

    0

    3답변

    기본적으로 Foo() 클래스에 Foo.bar (arg1, name) 메서드를 제공하는 API가 있습니다. 내가 원숭이 패치 이상이 다른에 대한 더 우아한 방법이 있는지 궁금 x=Foo() with my_argument(name="Something") as e: x.bar(arg1=5) # == x.bar(arg1=5, name="Something

    7

    2답변

    이것은 일하기로되어 있지만 주식 테이블은 없다고 말하면서 컨텍스트 매니저 내부의 어딘가에 연결이 끊어 졌다고 생각하십니까? import sqlite3 from contextlib import contextmanager @contextmanager def doquery(conn, q, params=()): c = conn.cursor()

    12

    2답변

    저는 파이썬의 SQLite 인터페이스를 사용하여 SQL 데이터베이스를 처리하는 데 익숙합니다. 파이썬의 SQLite의 API 중 하나 인 '컨텍스트 관리자'는 파이썬의 with 문입니다. 나는 일반적으로 다음과 같은 방법으로 쿼리를 실행 : 내 쿼리가 데이터베이스를 수정하는 경우, 위의 코드와 함께 import as sqlite with sqlite.c

    3

    2답변

    다음은 내가 작업하고있는 코드입니다. from contextlib import contextmanager from functools import wraps class with_report_status(object): def __init__(self, message): self.message = message def __c

    7

    1답변

    this question에서 컨텍스트 관리자가 포함 된 컨텍스트 관리자를 정의했습니다. 이 중첩을 수행하는 가장 쉬운 방법은 무엇입니까? 나는 self.__enter__()에 self.temporary_file.__enter__()를 부르는 것을 끝내었다. 그러나, self.__exit__에서 나는 꽤 예외가 발생했을 때 finally 블록에서 self.t