簡體   English   中英

如何更改python模塊中的函數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM