我正在尝试在python中读取树结构文件。 我创建了一个类来保存树对象。其中一名成员 应该持有父对象。 由于parentObject成员与类本身的类型相同, 我需要将此声明为“self”类型的空变量。
我如何在python中执行此操作?
非常感谢你的帮助。
答案 0 :(得分:6)
在Python中,您不会将变量声明为具有任何类型。你只需要分配给他们。如果您想这样做,可以连续为单个变量分配不同类型的对象。 “self”不是类型,而是用于引用当前对象的命名约定,如Java / C ++中的“this”(除了在Python中,您可以将其称为任何您想要的)。
答案 1 :(得分:5)
我假设对于根节点,您需要这样的对象。说Pythonic更多:
self.parent = None
在根对象中,而不是创建类型为self.__class__
的空对象。对于树中的每个其他节点对象,self.parent
应该引用实际的父节点。
请记住,在Python中,您没有'变量',您有对象,并且self.parent
在类的所有实例中都不需要具有相同的类型。
答案 2 :(得分:4)
因为parentObject成员是 与班级本身相同的类型,我 需要将此声明为空 “自我”类型的变量。
不,你不需要在Python中声明任何东西。你只需定义一些东西。
self不是一个类型,而是实例方法的第一个参数的常规名称,它由语言设置为方法的对象。
以下是一个例子:
class Tree(object):
def __init__(self, label=None):
self.label = label
self.parent = None
self.children = []
def append(self, node):
self.children.append(node)
node.parent = self
以下是如何使用的:
empty_tree = Tree()
simple_tree = Tree()
simple_tree.append(Tree('hello'))
simple_tree.append(Tree('world'))