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

print 'Hello YKazu'

('Python', 'Javascript')

クロージャによる動的な関数定義

Python2
def mark_up(tag):

    # これがクロージャ
    # 関数の内部で定義された関数が、外側関数のローカル変数を参照しているから。
    def closure(content):
        return '<%s>%s</%s>' % (tag, content, tag)
    return closure

# 動的な関数定義
p = mark_up('p')

print p('hello')   # <p>hello</p>
print p('yoshida') # <p>yoshida</p>

print mark_up('title')("print 'Hello Yoshida'") # <title>print 'Hello Yoshida'</title>