Hello Guys, How are you all? Hope You all Are Fine. Today We Are Going To learn about How can I specify the function type in my type hints in Python. So Here I am Explain to you all the possible Methods here.
Without wasting your time, Let’s start This Article.
How can I specify the function type in my type hints?
- How can I specify the function type in my type hints?
A callable takes any number of/type of arguments and returns a value of any type. In most cases, this isn't what you want since you'll allow pretty much any function to be passed.
- specify the function type in my type hints
This can be done with
from typing import AnyStr, Callable def my_function(name: AnyStr, func: Callable) -> None:
Callable on it’s own is translated to
Callable[..., Any] which means:
A callable takes any number of/type of arguments and returns a value of any type. In most cases, this isn’t what you want since you’ll allow pretty much any function to be passed. You want the function parameters and return types to be hinted too.
That’s why many
typing have been overloaded to support sub-scripting which denotes these extra types. So if, for example, you had a function
sum that takes two
ints and returns an
def sum(a: int, b: int) -> int: return a+b
Your annotation for it would be:
Callable[[int, int], int]
that is, the parameters are sub-scripted in the outer subscription with the return type as the second element in the outer subscription. In general:
Callable[[ParamType1, ParamType2, .., ParamTypeN], ReturnType]
Another interesting point to note is that you can use the built in function
type() to get the type of a built in function and use that. So you could have
def f(my_function: type(abs)) -> int: return my_function(100)
Or something of that form
It’s all About this issue. Hope all Methods helped you a lot. Comment below Your thoughts and your queries. Also, Comment below which Method worked for you? Thank You.