0
저는 파이썬 3을 사용합니다. kwargs에는 약간의 문제가 있습니다. 인스턴스 인수를 기본 인수 값으로 사용할 수 있습니까? 나는이 같은 의미 :기본 인수로 사용되는 인스턴스 속성
class foo:
def __init__(self, a,b):
self.a = a
self.b = b
def setNewA(self, a=self.a):
print(a)
을하지만 오류가있어 :
NameError: name 'self' is not defined
내가 클래스 이름을 사용하는 경우 나있어 :
AttributeError: type object 'foo' has no attribute 'a'
나는 다른 것을 알고를 방법은 다음과 같은 것을 사용하는 것입니다 :
def setNewA(self, a=None):
a = a or self.a
print(a)
그러나 m aybe 그것을 할 수있는 방법이 있습니까?
두 메소드 정의 모두에서 'self' 매개 변수가 누락되었습니다. 아니요, 인스턴스 속성을 기본 인수로 사용할 수 없습니다. 메서드가 만들어 질 때 존재하지 않습니다. – jonrsharpe
메소드는 객체에 대한 참조가 저장되는 첫 번째 인수로 'self'를 놓친다. [여기] (https://docs.python.org/3/tutorial/classes.html#method-objects)를 참조하십시오. – zegkljan
네 말이 맞아, 내 게시물에 오타가 생겼어. – voldi