Я хочу определить атрибут класса и затем использовать его в качестве аргумента метода в том же классе следующим образом
class Class1:
def __init__(self,attr):
self.attr=attr
def method1(self,x=self.attr):
return 2*x
Возвращает ошибку: NameError: name 'self' is not defined
Как я могу определить метод таким образом, что всякий раз, когда я не пишу x
явно, он просто использует атрибут attr
?
В примере я имею в виду, что я хотел бы иметь
cl=Class1()
print cl.method1(12) # returns '24'
cl.attr= -2
print cl.method1() # returns '-4'