全局数据框——好还是坏

Global dataframes - good or bad

我有一个程序,我将数百万行加载到数据框中,并且我将它们声明为全局的,因此我的函数(> 50)都可以像我过去使用数据库一样使用它们。我读到使用全局变量是不好的,并且由于它的内存映射,使用全局变量速度较慢。

我想问问全局变量是否不好,好的做法是什么?围绕函数和嵌套函数传递 > 10 个数据帧似乎也不是非常干净的代码。 最近该程序变得笨拙,因为不同的功能还更新不同的单元格,插入,从数据帧中删除数据,所以我正在考虑将数据帧包装在 class 中以使其更易于管理。这是个好主意吗?

是的。您应该将数据包装到一个对象中,然后将该对象传递给您的函数,而不是使用全局变量(请参阅依赖注入)。

将其包装在一个对象中而不是使用全局 will :

  1. 允许您对代码进行单元测试。这绝对是最重要的原因。使用全局变量会使测试代码变得非常困难,因为由于其全局性质,不可能单独测试任何代码。
  2. 安全地对您的代码执行操作,而不必担心随机可变性错误
  3. 停止发生可怕的并发错误,因为一切都是全局的。