我想在 Python 中使用類型提示,但在某些情況下,我的參數類型不清楚……函數是否有類型,或者它們是特殊情況。我想做類似以下的事情:偽代碼:def run_function(function_to_run: fn):
function_to_run(data)這可能嗎?如果是這樣,我應該使用什么類型?編輯:我希望將函數與其他可調用對象(例如類)區分開來......但這可能并不重要并且過于謹慎。
3 回答

慕的地10843
TA貢獻1785條經驗 獲得超8個贊
如文檔中所述:您可以使用Callable.
例如,您可以這樣使用它:
from typing import Callable
def run_function(function_to_run: Callable[[int], str]):
function_to_run(data)
iffunction_to_run是從int到的函數str。

侃侃爾雅
TA貢獻1801條經驗 獲得超16個贊
雖然您幾乎可以肯定不關心各種可調用類型之間的區別,但如果您愿意,您可以強制執行該types
模塊為不同類型的函數提供了相當多的特定名稱(其中一些您甚至可能不認為是不同的)類型)。僅舉幾個:
types.FunctionType
和types.LambdaType
(相同基礎類型的別名)types.BuiltinMethodType
和types.BuiltinFunctionType
types.MethodWrapperType
types.MethodDescriptorType
添加回答
舉報
0/150
提交
取消