在 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 的检查器)会理解您的提示并适当地注册它,这是常见的情况。
正确指定方法参数类型的 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 的检查器)会理解您的提示并适当地注册它,这是常见的情况。