[英]How to change a function in python module?
我試圖修改類中的函數。 我正在按照此鏈接中的步驟操作。 我想了解為什么這些更改不起作用。
功能是
def explain(self, test_df, row_index=None, row_num=None, class_id=None, bacckground_size=50, nsamples=500)
來自模塊ktrain
我試圖獲得 shap 值本身而不是情節。 我的變化在
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創建一個新的繼承類。我做錯了什么?
更新:我確實導入了 ktrain
聽起來您對 python import
語句有點困惑,它有幾種替代語法。
使用import ktrain
只會在您的代碼中導入對模塊ktrain
的引用; 如果您希望代碼引用ktrain
模塊內的任何內容,則需要使用點符號,例如ktrain.TabularPredictor()
。 優點: ktrain
模塊中的所有內容現在都可以從您的代碼中訪問。 缺點:每次要創建類的實例時都輸入ktrain.TabularPredictor()
可能有點冗長,而且您實際上可能只需要該模塊中的一兩個類。
使用from ktrain import TabularPredictor
將使 TabularPredictor 類可在您的代碼命名空間中訪問,因此無需使用點符號; 當你想創建一個實例時,你可以只輸入TabularPredictor()
。 優點:不那么冗長,你只導入你需要的東西( ktrain
中的其他類或函數ktrain
能從你的代碼中訪問)。 缺點:稍后您可能會發現模塊中的其他一些類/函數很有用,這意味着您必須更改導入語句。 必須從同一個模塊中單獨導入 10 個不同的類也可能很痛苦。
您可以在此處閱讀更多信息: https : //stackoverflow.com/a/21547583/13990016
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.