使用全局变量还是反复调用返回该变量的函数



我有一个Python模块,它由许多不同的函数组成。

假设我的第一个函数返回一个变量,我想在第二个函数中使用两次,第二个函数返回一个变量,我想在第三个函数中使用四次(…)等等)。

是更好地声明变量,我想在整个模块中使用全局,然后调用函数,返回说变量一次定义全局,而不是调用函数不止一次,以使用它们返回的变量?

我说这是安全(不使用全局变量)和效率(如果可能的话,不执行每个函数不止一次)之间的权衡是正确的吗?

    def fn_for_reading_file():
      # (Insert code for prompting user for filename, opening and reading file)
      global file_as_string
      # (Insert code for assigning user's file to file_as_string)
      return file_as_string
    fn_for_reading_file()
    def extract_data_from_string():
      global my_list = []
      # (Insert code for going through return_file_as_string and appending data to my_list)
      return my_list
    extract_data_from_string()
    def another_fn():
      # (Insert code which uses file_as_string and my_list)
      return fn_output
    another_fn()

我会尝试重新定义你正在思考的问题。如果你只考虑函数式编程,那么是的,你是正确的,因为安全性与更多代码是你正在考虑的基本权衡。

然而,有很多方法可以通过重新构建问题来绕过你的困境。我显然不知道你的代码是什么样子的,但是考虑将这个功能构建到一个类中可能是有意义的。与其使用全局变量,不如使用适当的getter/setter将这些值设置为类属性,然后构建模块,使您的函数成为方法。

相关内容

  • 没有找到相关文章

最新更新