How can type hints be declared to indicate that a function returns an instance of the class reference that is passed as an argument?
Declaring it as follows does not seem right, as it indicates that the returned type is the same as the type of the argument:
from typing import TypeVar
T = TypeVar('T')
def my_factory(some_class: T) -> T:
instance_of_some_class = some_class()
return instance_of_some_class
Example usage:
class MyClass:
pass
my_class = my_factory(MyClass) # Inferred type should be MyClass
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…