星期三, 六月 20, 2007

python itree = func(head.branch=value)

>>> class tree:
... def __init__(self, **kwargs):
... self.ka = kwargs
...
>>> t = tree()
>>> print t.ka
{}
>>> t = tree(a=1)
>>> print t.ka
{'a': 1}
>>> t = tree(a.b=1)
SyntaxError: keyword can't be an expression
虽然已经定义了 class Tree,并且可以非常方便的操作,如:
head = Tree(value)
head = Tree(value, data=value1, extra=value2)
head.branch = value
head.branch = Tree(value)
head.branch[key] = value
value = head.branch()
value = head.branch[key]()
head.Node1(['branch', 'br1'], value)
head.Node1(['branch', {'br1' : key}, 'br2'], value)
tmap = head.branch('traverse')
other = Tree(value); head.update(other)
但如果要做 func(head.branch=value) 还是不可能的。不过实际上也没有这样的必要,如果需要的是 head.branch 或它的值,可以分别用 head.branch 和 head.branch() 作为其参数,如果是要改变 head.branch 的值,在函数中更改即可。上面的形式只会造成混乱。

没有评论: