python类的成员函数有一个参数_类成员函数参数设置为成员变量的Python默认值

我在用Python编写递归成员函数时遇到了一个问题。我无法将函数参数的默认值初始化为与成员变量相同的值。我猜Python不支持这种功能,因为它说self在我试图分配参数时没有定义。虽然我可以围绕它编写代码,但是Python中缺少函数重载的情况会使我尝试的一个明显的解决方案落空。在

例如,尝试递归地打印一个链表,我得到了以下显示函数的代码def display(self,head = -1):

if head == -1:

head = self.head

if not head:

return

print head,

self.display(head.link)

虽然这段代码有效,但它很难看。

主要功能如下:

^{pr2}$

如果我能把显示功能参数设为默认值自身.头部如果不带参数调用它,那么它看起来会更好。我最初尝试创建这个函数的两个版本,一个接受两个参数,一个接受一个参数,但正如我所说,Python不支持重载。我可以传递一个参数列表并检查参数的数量,但这也很难看(这会使它看起来像Perl!)。问题是,如果我放线

水头=自身.头部

在函数体内部,它将在每次递归调用期间被调用,这绝对不是我需要的行为。None也是head变量的有效值,因此我无法将其作为默认值传入。我使用-1来基本上知道我在初始函数调用中,而不是递归调用中。我意识到我可以编写两个函数,一个驱动另一个,但我宁愿把它们都包含在一个递归函数中。我很确定我遗漏了一些基本的Python原理,有人能帮我解决这个问题吗?在

谢谢!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值