読者です 読者をやめる 読者になる 読者になる

print文を使う

Silverlight IronPython

デバッグ等でprint文を使いたい場合は、writeメソッドを実装したオブジェクトでsys.stdoutを上書きすればよい。次の例は、実行時にtextareaを作り、そこにstdoutへの出力を表示する例。

import sys
from System.Windows.Browser.HtmlPage import Document

class DebuggingWriter(object):
    def __init__(self):
        self.text = ''
        self.target = Document.CreateElement("textarea")
        self.target.SetAttribute("cols", "80")
        self.target.SetAttribute("rows", "10")
        Document.GetElementsByTagName("body")[0].AppendChild(self.target)

    def write(self, text):
        text = text.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")
        self.text += text
        self.target.innerHTML = self.text

sys.stdout = DebuggingWriter()

print "spam"
print "egg"
print "ham"