如何檢查給定類的實體是否可呼叫。如果您實體化該類然后使用callable(). 但我的問題是如何在不實體化的情況下進行檢查。以Calendar班級為例:
>>> import calendar
>>> callable(calendar.Calendar())
False
我想做同樣的事情但不實體化,即實作一些功能callable_class_instances(),例如:
>>> import calendar
>>> callable_class_instances(calendar.Calendar)
False
>>>
>>> class MyFunc:
... def __init__(self):
... print('Should not run on callable_class_instances call.')
... def __call__(self):
... print('MyFunc instance called.')
>>> callable_class_instances(MyFunc)
True
有什么簡單的方法可以做到這一點看起來不像黑客嗎?
uj5u.com熱心網友回復:
從檔案:
注意類是可呼叫的(呼叫類回傳一個新實體);如果它們的類有
__call__()方法,則實體是可呼叫的。
我之前嘗試的問題 ( hasattr) 是所有類都有一個__call__方法,以便我們可以初始化它們。這應該在大多數情況下作業:
>>> import types
>>> import calendar
>>> isinstance(calendar.Calendar.__call__, types.FunctionType)
False
請注意,這不適用于非 Python__call__實作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/447540.html
下一篇:類內的Ursina更新功能
