在Python中,instance()
函數實際上是一個內置函數,用于檢查對象是否為指定類的實例。這個函數已經在Python 3中被移除,取而代之的是 isinstance()
函數。但是,你不能直接自定義 isinstance()
函數,因為它是Python的內置函數。
然而,你可以通過編寫自己的類并重寫 __instancecheck__()
方法來實現類似的功能。這個方法會在使用 isinstance()
函數時被調用。下面是一個簡單的例子:
class MyClass:
def __instancecheck__(self, instance):
# 在這里添加你的自定義邏輯
return isinstance(instance, (int, float))
# 創建一個MyClass的實例
my_instance = MyClass()
# 檢查一個對象是否為MyClass的實例
print(isinstance(123, my_instance)) # 輸出 True
print(isinstance("hello", my_instance)) # 輸出 False
在這個例子中,我們創建了一個名為 MyClass
的類,并重寫了 __instancecheck__()
方法。當我們使用 isinstance()
函數檢查一個對象是否為 MyClass
的實例時,它會調用我們自定義的 __instancecheck__()
方法。在這個方法中,我們簡單地檢查對象是否為 int
或 float
類型。