What is the pythonic way to properly specify the type of the arguments of a method?
Checking 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? only works for primitive data types.
Consider the minimum following example, where I want to pass an object of same type to the method. This does not work because the method is defined inside the 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()
 
    