【问题标题】:How can my make my code reusable by using attributes/classes? [closed]如何通过使用属性/类使我的代码可重用? [关闭]
【发布时间】:2019-06-09 15:47:57
【问题描述】:

我有多个数据集,我想做同样的事情。如何使我的代码可重用?

我已经把我的一些代码分组到函数中了,但是我应该如何把所有的函数集成到一个类中什么的,这样每次读入一个DataFrame,我只需要调用函数

【问题讨论】:

  • SO 可能不适合这样一个普遍的问题。你会想提出一个更具体的问题。我不确定为什么课程会让你更轻松。
  • 因为我有多个数据集,我想做同样的事情,但我想在不同的 python 文件中分析我的数据集。如果我不使用类,我想每次分析新数据集时都需要将函数代码复制并粘贴到新文件中。

标签: python python-3.x jupyter-notebook


【解决方案1】:

我不确定您的确切意思,但是假设我有一段数据要导入。每次导入时,我都想运行相同的预处理步骤,包括冗长的清理、数据转换等。

你可以这样做:

def clean_data():
    pass

def transform_data():
    pass

def import_data():
    data = clean_data(data)
    data = transform_data(data)

data = import_data(data)

如果更有意义的话,这也可以变成一个类。

您还询问了如何在不同的文件中使用它们。假设这个脚本叫做“data_import.py”。

然后我们可以在其他脚本中使用它(在同一个文件夹中),只需这样做

import data_import

data_import.import_data(data)

from data_import import *

import_data(data)

如果它在另一个文件夹中,您必须在 data_import.py 所在的同一文件夹中添加名为 __init__.py 的空白文件。

【讨论】:

  • 如果我有多个函数并且想将它们组合在一起怎么办?如果我在不同的python文件中分析我的数据,我该怎么做才能只包含一次函数代码并在需要时调用函数
  • 我刚刚向您展示了您可以独立编写函数,但在 1 个函数中调用它们。在底部你可以看到我们只是运行了 import_data(data) 但它运行了多个函数。
  • 我的意思是,在这种情况下,如果我想分析多个数据集,我必须在一个文件中进行,因为我的函数是在该文件中定义的。有没有办法(比如在 C++ 中)创建类,这样即使在不同的文件中,我仍然可以使用该函数而无需再次键入它们?
  • 你可以很容易地在 python 中导入模块(例如这个文件),只需输入 import module_name 其中 module_name 是 python 文件。因此,例如我们上面编写的脚本,如果它称为“main.py”,您可以通过 import main 将其导入其他地方,然后在任何您喜欢的地方键入 main.import_data(data)。
  • 基本上,如果我将所有函数都保存在 main.py 中,并且每次我想调用该函数时,我可以使用 main.func_name(var) 吗?是这个意思吗?
猜你喜欢
  • 2010-09-21
  • 1970-01-01
  • 2018-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
相关资源
最近更新 更多