질문 헤더가 이상하게 들리지만 영어가 제 첫 번째 언어가 아니기 때문에 공식화하기가 매우 어렵습니다. 그러나, 나는 그것을 더 많은 텍스트로 설명 할 수있을 것이다.Python 3 : "self"를 사용할 필요가있는 __init__에서 자기 속성을 설정하는 명령을 내리셨습니까?
문제는 예를 들어 "Foo"라는 클래스를 만들려고한다는 것입니다.
# ../myProject/Foo.py
class Foo:
'''Represents an example class for stackoverflow'''
이제
푸 클래스의 모든 인스턴스
는 단순히 예를 통해 실행할 수있는 기능을 보유하고function
속성을 가지고있다. 또한
parameters
속성, 터플 또는 목록이 있으며
function
이 호출 될 때 사용해야하는 매개 변수가 들어 있습니다.
이 잘 동작하는 것
def __init__(self, function, parameters):
self.function = function
self.parameters = parameters
def callFunction(self):
if self.function:
self.function(*self.parameters)
그러나, 문제는, 내가 인스턴스의 속성을 변경하려면, 그것을 기본 값을 제공 할 것이다. 기본적으로 다음 작업을 수행하려고합니다.
def __init__(self, function=setattr, \
parameters=(self, "togglableAttribute", not self.togglableAttribute)):
이렇게하면 NameError: name 'self' is not defined
이 발생합니다. 작동을 위해이를 어떻게 구현해야합니까? 아니면 해결 방법을 제시해야합니까?
Ahh 물론, 고맙습니다. 나는 존재하지 않는 것을 알고 있었지만, 다른 방식으로 그것을 구현하는 방법을 확실히 알지 못했습니다. 또한 이전 답변에 대한 링크를 제공해 주셔서 감사합니다. 소중한 사람이 언젠가는 도움이 될 수 있습니다. –