Python中的静态类型检查:self使用什么?

Python中的静态类型检查:self使用什么?,python,python-3.x,python-typing,Python,Python 3.x,Python Typing,我试图在Python中使用类型检查,但遇到了一个问题,即在引用self时应该使用什么类型的参数 class MyClass: def my_func(self: TYPE?) -> str: return 'Hello world!' 我猜它应该是MyClass类型,但我对此不确定。您可以将该类型放在引号中以引用它自己(即通过字符串引用该类) 但是,在这种情况下不必使用类型注释,因为self参数是隐式传递的,因此是已知的。严格来说,self的类型不能静态地知道,因为它取决于

我试图在Python中使用类型检查,但遇到了一个问题,即在引用
self
时应该使用什么类型的参数

class MyClass:
  def my_func(self: TYPE?) -> str:
    return 'Hello world!' 

我猜它应该是MyClass类型,但我对此不确定。

您可以将该类型放在引号中以引用它自己(即通过字符串引用该类)


但是,在这种情况下不必使用类型注释,因为
self
参数是隐式传递的,因此是已知的。

严格来说,
self
的类型不能静态地知道,因为它取决于
self
的运行时类型的MRO。这是否回答了您的问题?
class MyClass:
    def my_func(self: 'MyClass') -> str:
        return 'Hello world!'