全局或本地使用功能?

时间:2018-05-05 08:05:29

标签: python

在Python中,我有几个函数使用用户目录的位置作为确定文件放置位置的方法。

我目前正在使用"全球"所有要使用的函数的变量。

home = os.path.expanduser('~')

我想知道这是不是很好的编码习惯。

这样做的好处是程序只需要执行一次此代码。 每次调用它时,我也可以调用每个函数os.path.expanduser

哪个更像pythonic?或者是否有一种pythonicer方式?

2 个答案:

答案 0 :(得分:2)

全局变量没有任何问题。这是您设计程序的结果。您编写了一些函数并将它们放在一个模块中,而globals是一种在模块中的各个函数之间共享数据的方法。

例如,如果您决定使用面向对象的设计,那么可以认为应该避免使用全局变量并且应该封装共享数据。但你没有这样做,所以全局都很好。

答案 1 :(得分:0)

可以使用全局常量。最后,在同一模块中定义的所有第一级函数和类在这个意义上也是“全局的”。

当系统的不同组件开始重新分配其值或改变其内容时,使用gobal变量会变得混乱。在这种情况下,它是一个明显的反模式,可能导致调试地狱。