2016-12-06 19 views
0

我提供我的對象到位於「file.py」的路徑,我需要從它稱爲「壓縮」如何從另一個類中調用用戶實現的方法?

file.py調用一個方法

def compress(arg): 
    return arg-5 

other.py

class Algorithm: 
    def __init__(self, path): 
     self.path = path #/PATH/TO/file.py 

    def func(self, arg1): 
     return self.path.compress(arg1) 

當然這是一個虛擬的例子,但我如何以正確的方式實現func?它甚至有可能嗎?

回答

3

使用importlib模塊,您可以動態加載適當的路徑,然後從該模塊中調用相應的功能!使用os.path一個簡單的例子:

import importlib 
my_module = importlib.import_module('os.path') 
my_module.exists("/non_existing_path") 

在這種情況下,你可能想要做一些額外的檢查,如文件存在和功能的存在。

相關問題