我想将在类__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
答案 0 :(得分:2)
我不认为您可以将实例属性值用作默认值。您可以通过以下方法解决此问题:默认为None
,然后在函数中进行其余操作:
def print_element(self, element=None):
if element is None:
element = self.value
答案 1 :(得分:1)
您不能执行此操作:定义函数时将评估默认值。
您的运行时逻辑似乎是
element
,请打印出来self.value
您可以在方法内部使用条件获取此信息。
def print_element(self, element=None):
print(element if element else self.value)
那简短到足以满足您的目的吗?