是否可以使用 self.value 作为方法中的默认参数?
Is it possible to use self.value as default argument in method?
我想使用 class __init__
中定义的元素作为其他方法的默认参数。这是我的代码:
class Main():
def __init__(self):
self.value = 3
def print_element(self, element=self.value):
print(element)
main = Main()
main.print_element()
它产生错误:
Traceback (most recent call last):
File "so.py", line 1, in <module>
class Main():
File "so.py", line 5, in Main
def print_element(self, element=self.value):
NameError: name 'self' is not defined
我认为您不能将实例属性值用作默认值。您可以通过默认为 None
来解决它,然后在函数内完成其余的工作:
def print_element(self, element=None):
if element is None:
element = self.value
您不能这样做:默认值是在您定义函数时计算的。
您的 运行 时间逻辑似乎是
- 如果传入
element
,打印
- 否则,打印当前
self.value
您可以在方法中使用条件来获取它。
def print_element(self, element=None):
print(element if element else self.value)
这篇文章足够简短吗?
我想使用 class __init__
中定义的元素作为其他方法的默认参数。这是我的代码:
class Main():
def __init__(self):
self.value = 3
def print_element(self, element=self.value):
print(element)
main = Main()
main.print_element()
它产生错误:
Traceback (most recent call last):
File "so.py", line 1, in <module>
class Main():
File "so.py", line 5, in Main
def print_element(self, element=self.value):
NameError: name 'self' is not defined
我认为您不能将实例属性值用作默认值。您可以通过默认为 None
来解决它,然后在函数内完成其余的工作:
def print_element(self, element=None):
if element is None:
element = self.value
您不能这样做:默认值是在您定义函数时计算的。
您的 运行 时间逻辑似乎是
- 如果传入
element
,打印 - 否则,打印当前
self.value
您可以在方法中使用条件来获取它。
def print_element(self, element=None):
print(element if element else self.value)
这篇文章足够简短吗?