當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.test.TestCase.captureWritesToStream用法及代碼示例


用法

@contextlib.contextmanager
captureWritesToStream(
    stream
)

參數

  • stream 應捕獲其寫入的流。此流必須具有文件說明符,支持通過使用該文件說明符進行寫入,並且必須具有.flush() 方法。

生成(Yield)

  • 一個 CapturedWrites 對象,其中包含在此上下文期間對指定流的所有寫入。

捕獲對給定流的寫入的上下文管理器。

此上下文管理器捕獲對 CapturedWrites 對象內給定流的所有寫入。創建此上下文管理器時,它會生成 CapturedWrites 對象。可以通過在 CapturedWrites 上調用 .contents() 來訪問捕獲的內容。

要使此函數起作用,流必須具有可以使用 os.dupos.dup2 修改的文件說明符,並且流必須支持 .flush() 方法。默認的 python sys.stdout 和 sys.stderr 就是這樣的例子。請注意,這在 Colab 或 Jupyter 筆記本中不起作用,因為它們使用備用標準輸出流。

例子:

class MyOperatorTest(test_util.TensorFlowTestCase):
  def testMyOperator(self):
    input = [1.0, 2.0, 3.0, 4.0, 5.0]
    with self.captureWritesToStream(sys.stdout) as captured:
      result = MyOperator(input).eval()
    self.assertStartsWith(captured.contents(), "This was printed.")

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.test.TestCase.captureWritesToStream。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。