Python 中给函数指定 attribute 是良好的实践吗?
在看绘制决策树代码时候看到作者这么用, 这个稍微有点违反了我的感觉, 伪代码大概如下:
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)
我觉得似乎把属性作为参数传递更符合大部分人阅读习惯?
还是我段位不够?