私はまだ Python のデコレータについて理解していません。
コーディングで関数やクラスをカスタマイズするなどのことを行うために、すでに多くのクロージャを使用し始めています。
例えば。
class Node :
def __init__(self,val,children) :
self.val = val
self.children = children
def makeRunner(f) :
def run(node) :
f(node)
for x in node.children :
run(x)
return run
tree=Node(1,[Node(2,[]),Node(3,[Node(4,[]),Node(5,[])])])
def pp(n) : print "%s," % n.val
printTree = makeRunner(pp)
printTree(tree)
私が見る限り、デコレータは似たようなことをするための別の構文です。
それ以外の
def pp(n) : print "%s," % n.val
printTree = makeRunner(pp)
私は書くだろう:
@makeRunner
def printTree(n) : print "%s," % n.val
デコレータはこれだけですか?それとも、私が見逃した根本的な違いはありますか?