如何更改 python 模块中的功能?

How to change a function in python module?

我试图修改 class 中的函数。我正在按照此 中的步骤操作。我想了解为什么更改不起作用。

函数为:

def explain(self, test_df, row_index=None, row_num=None, class_id=None, bacckground_size=50, nsamples=500)

来自模块 ktrain

我试图自己获取形状值而不是绘图。我的改动在

 def alternative_explain (self, test_df, row_index=None, row_num=None, class_id=None, background_size=50, nsamples=500)

那我试试:

import types
import ktrain
funcType = types.MethodType
predictor1 = TabularPredictor()

但是出现“名称 'TabularPredictor' 未定义的错误。同样,我无法从 TabularPredictor 创建新的继承 class。我做错了什么?

更新: 我导入了 ktrain

听起来您对 python import 语句有点困惑,它有几种替代语法。

使用 import ktrain 只会在您的代码中导入对模块 ktrain 的引用;如果您希望您的代码引用 inside ktrain 模块中的任何内容,您需要使用点符号,例如ktrain.TabularPredictor()。优点:现在可以从您的代码中访问 ktrain 模块中的所有内容。缺点:每次要创建 class 的实例时输入 ktrain.TabularPredictor() 可能有点冗长,实际上您可能 需要 一个或来自该模块的两个 classes。

使用 from ktrain import TabularPredictor 将使 TabularPredictor class 在代码的命名空间中可访问,因此无需使用点符号;您可以在要创建实例时键入 TabularPredictor()。优点:不那么冗长,您只需导入您需要的内容(其他 class 中的 none 或 ktrain 中的函数可以从您的代码中访问)。缺点:稍后您可能会发现模块中的其他一些 classes/functions 很有用,这意味着您必须更改导入语句。必须从同一个模块中单独导入 10 个不同的 classes 也很痛苦。

您可以阅读更多内容here