2017-02-17 64 views
-2

所以我想要做的是在多個環境中運行一段代碼。在模塊存在的環境中,我可以繼承它的類,但是模塊不存在的地方,我不希望我的代碼中斷,並且不應該出現錯誤。繼承自Python中不存在的類

try: 
    from school.modules import student 
except ImportError: 
    pass 

class MyWebAPP(student.StudentClass): 

我得到一個錯誤,學生沒有定義。我想以某種方式繞過這個。 建議?

+0

如果導入成功,則將變量設置爲True,並且只有當該值爲true時,才使用導入的類/模塊。否則,不要這樣做。很想知道,如果學生導入失敗,你的故障轉移是什麼? –

+0

你的班級如何利用可能從其他班級繼承的方式?你有什麼好處? – khelwood

+0

@ Vikash-正如我所說的代碼旨在用於MULTIPLE環境中,在模塊不存在的環境中,我們根本不打算使用它,因此模塊中的類不應該被繼承。這就是所謂的「故障轉移」。 – CodePlorer

回答

2

將該類指定給變量,如果不存在,則使用object

try: 
    from school.modules import student 
    parent = student.StudentClass 
except ImportError: 
    parent = object 

class MyWebAPP(parent): 
    pass 

這可以防止你有重複之類的整個定義兩個分支,但假定一切類中其他不需要依賴於所使用的基類的變化。

+0

太棒了!謝謝! – CodePlorer