我試圖制作一種方法來檢查物件是否是基于教師類的教師型別。這是代碼,但我收到語法錯誤?
def addFaculty(self, f_obj):
if f_obj isinstance(f_obj, Faculty):
return True
else:
self.directory.append(f_obj)
uj5u.com熱心網友回復:
嘗試這個:
def addFaculty(self, f_obj):
return isinstance(f_obj, Faculty)
或者:
def addFaculty(self, f_obj):
return type(f_obj) is Faculty
uj5u.com熱心網友回復:
類名不能在方法范圍內使用。
為此,請使用__class__obj 的 attr self。
def addFaculty(self, f_obj):
if isinstance(f_obj, self.__class__):
return True
else:
self.directory.append(f_obj)
uj5u.com熱心網友回復:
實作類似功能的另一種方法是使用__init_subclass__方法
class Faculty:
dictionary= {}
def __init_subclass__ (cls, **kwargs):
Faculty.dictionary[cls.__name__] = cls
class New(Faculty):
pass
print(Faculty.dictionary)
輸出:{'New': (class '__main__.New')}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/520859.html
上一篇:如何獲取陣列內物件的其余值
