簡體   English   中英

無法從其他路徑導入類 - ValueError:空模塊名稱

[英]Can not import class from another path - ValueError: Empty module name

我在stackoverflow上關於如何從根文件夾之外的路徑導入類的建議: 如何動態加載Python類 python是否具有Java Class.forName()的等價物?

不幸的是,這引發了錯誤: ValueError:空模塊名稱

我的理解是import不應該返回一個空模塊,比如imp中的load_source方法。 所以我不明白這個錯誤,也不了解如何處理它。

我在這里做錯了什么? 你能在這里向我傾斜正確的方向嗎?

謝謝!

碼:

klass = __import__('..folder.module.Class_A')
some_object = klass()

class class_B(some_object):
    def run(self):
        print ('Test OK!')

導入類(模塊內容):

class Class_A():
    def __init__(self, arg1, *args):
def run(self):
    pass

首先,您沒有正確使用導入。

選項1

根據https://docs.python.org/2/library/functions.html# import,您應該這樣做:

klass = __import__('folder.module', globals(), locals(), ['Class_A'], -1)

現在,如果您想要Class_A本身,您應該:

some_object = klass.Class_A

然后你可以使用以下方法繼承它:

class class_B(some_object):
    def run(self):
        print ('Test OK!')

選項2

from folder.module import Class_A

然后你可以使用以下方法繼承它:

class class_B(Class_A):
    def run(self):
        print ('Test OK!')

注意 :在folder.module文件夾中應該是python包,模塊應該是python模塊

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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