在看绘制决策树代码时候看到作者这么用, 这个稍微有点违反了我的感觉, 伪代码大概如下:
def plot_tree(tree):
fig_size = plot_tree.fig_size
offset = plot_tree.offset
plot_tree.offset = some_func(fig_size, offset) # 这里给函数指定了 attr
for key in tree.keys():
if isinstance(tree[key], dict):
plot_tree(tree[key])
else:
plot_node(tree[key])
def main():
tree = make_tree()
plot_tree.fig_size = size_func(tree) # 这里给函数指定了 attr
plot_tree.offset = offset_func(tree) # 这里给函数指定了 attr
plot_tree(tree)
我觉得似乎把属性作为参数传递更符合大部分人阅读习惯?
还是我段位不够?