我开始从Java学习Python。我想在Java中编写类似于以下代码的Python代码:

public BinaryNode(T nodeData, BinaryNode<T> leftChild, BinaryNode<T> rightChild) {}


到目前为止,这是我尝试过的:

from typing import TypeVar

T = TypeVar('T')
class BinaryNode:

    def __init__(self, nodeData : T, leftChild : BinaryNode = None,
             rightChild : BinaryNode = None):
          self.nodeData = nodeData
          self.leftChild = leftChild
          self.rightChild = rightChild


我应该如何指定传递给__init__的BinaryNodes应该具有与nodeData相同的类型参数?谢谢你的帮助。

最佳答案

Python使用Duck-Typing

您不需要指定类型。它将在运行时解决。

确实,在Python中,您可以处理对象。因此,如果您将BinaryNodes处理为与nodata相同的类型,在某些情况下不是这样,则将发生错误,如果可能,应进行处理。

10-06 13:35