클래스에서 메소드를 원숭이가 패치한다고 가정하면 어떻게 재정의 메소드에서 재정의 메소드를 호출 할 수 있습니까? 즉 뭔가 조금super 예 : class Foo def bar() "Hello" end end class Foo def bar() super() + " World" end end >> Foo.new.bar == "Hello World"
목표는 DB 결과 집합처럼 동작하는 모의 클래스를 만드는 것입니다. 예를 들어 dict 표현식을 사용하여 데이터베이스 쿼리가 반환 {'ab':100, 'cd':200}되면 다음을보고 싶습니다. >>> dummy.ab 100 처음에는 이런 식으로 할 수 있다고 생각했습니다. ks = ['ab', 'cd'] vs = [12, 34] class C(dict): def __init__(self, ks, vs): for i, k in enumerate(ks): …
Python Mock 라이브러리 의 도움으로 테스트를 시도중인 데코레이터가있는 함수가 있습니다. mock.patch실제 데코레이터를 함수를 호출하는 모의 '바이 패스'데코레이터로 대체하는 데 사용하고 싶습니다 . 내가 알아낼 수없는 것은 실제 데코레이터가 함수를 래핑하기 전에 패치를 적용하는 방법입니다. 패치 대상에 대해 몇 가지 다른 변형을 시도하고 패치 및 가져 오기 문을 재정렬했지만 성공하지 못했습니다. …
다른 모듈의 기능을 다른 기능으로 교체하는 데 문제가있어 미치게 만듭니다. 다음과 같은 bar.py 모듈이 있다고 가정 해 보겠습니다. from a_package.baz import do_something_expensive def a_function(): print do_something_expensive() 그리고 다음과 같은 또 다른 모듈이 있습니다. from bar import a_function a_function() from a_package.baz import do_something_expensive do_something_expensive = lambda: 'Something really cheap.' a_function() import …