我开始从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
相同的类型,在某些情况下不是这样,则将发生错误,如果可能,应进行处理。