【发布时间】:2018-11-30 07:47:55
【问题描述】:
下面的类表示具有内部节点值的树结构。斐波那契递归函数用于生成fib_tree。我没有在fib_tree 中遇到下面的类回电。符号Tree (left.entry + right.entry, left, right) 让我感到困惑。在OOP中,我熟悉obj_inst.att、obj_inst.method()、properties、self、__init__等。
这里left.entry + right.entry——left、right和entry是对象实例本身的属性,那么attribute.attribute是什么意思呢?究竟是什么在这里传递给__init__?这是一种流行的技术吗?它有我可以研究的名称吗?
class Tree (object):
def __init__(self, entry , left = None, right = None):
self.entry = entry
self.right = right
self.left = left
def __repr__(self):
args = repr(self.entry)
if self.left or self.right:
args += ' , {0}, {1}'.format (repr(self.left), repr(self.right))
return 'Tree ({0})'. format (args)
def fib_tree (n):
if n == 1:
return Tree (0)
if n == 2:
return Tree (1)
left = fib_tree (n-2)
right = fib_tree (n-1)
return Tree (left.entry + right.entry, left, right)
fib_tree (4)
#Tree (2 , Tree (1), Tree (1 , Tree (0), Tree (1)))
【问题讨论】:
标签: python python-3.x python-2.7 oop recursion