在 class 方法中指定类型

specify the type inside a class method

正确指定方法参数类型的 pythonic 方法是什么?

检查 How do Python functions handle the types of the parameters that you pass in? and How do I ensure parameter is correct type in Python? 仅适用于原始数据类型。

考虑下面的最小示例,我想将一个相同类型的对象传递给该方法。这不起作用,因为该方法是在 class.

中定义的
class num:
    def __init__(self,val:int) -> None:
        self.x=val
    def print(self,other:num) -> None:
        pass

def main():
    n=num(3)
    n.print()

main()

您可以使用 forward references:

class num:
    def __init__(self,val:int) -> None:
        self.x=val
    def print(self,other:'num') -> None:
        pass

这是有效的,因为 Python(以及任何符合 PEP 484 的检查器)会理解您的提示并适当地注册它,这是常见的情况。