gpt4 book ai didi

python - 重载类方法时引用自身

转载 作者:行者123 更新时间:2023-11-28 19:49:43 27 4
gpt4 key购买 nike

如果“重载”在这里不是正确的术语,请原谅我...

我正在尝试做这样的事情:

class Length:

def __init__(self, length = 0):
self._length = length

def twice(self, length = self._length):
return length*2

如您所见,我试图在 twice() 的参数中引用 self._length。 Python 不喜欢这样。我收到 NameError: name 'self' is not defined

有没有一种好的方法可以像这样分配一个默认值并得到我想要的?

最佳答案

您不能将实例属性用作方法的默认参数。这些方法及其默认参数值是在定义类时定义的,但实例属性直到稍后实例化类时才存在。

你必须做的:

def twice(self, length=None):
if length is None:
length = self._length
return length*2

关于python - 重载类方法时引用自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15956572/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com