728x90
반응형
질문 : __init__와 self는 파이썬에서 무엇을합니까?
저는 파이썬 프로그래밍 언어를 배우고 있는데 제가 완전히 이해하지 못하는 것을 발견했습니다.
다음과 같은 방법으로 :
def method(self, blah):
def __init__(?):
....
....
self
는 무엇을합니까? 그것은 무엇을 의미합니까? 필수인가요?
__init__
메소드는 무엇을합니까? 왜 필요한가요? (기타.)
나는 그들이 OOP 구조라고 생각하지만 잘 모르겠습니다.
답변
이 코드에서 :
class A(object):
def __init__(self):
self.x = 'Hello'
def method_a(self, foo):
print self.x + ' ' + foo
... self
변수는 객체 자체의 인스턴스를 나타냅니다. 대부분의 객체 지향 언어는 이것을 객체에 정의 된 메소드에 숨겨진 매개 변수로 전달합니다. 파이썬은 그렇지 않습니다. 명시 적으로 선언해야합니다. A
클래스의 인스턴스를 만들고 해당 메서드를 호출하면 다음과 같이 자동으로 전달됩니다.
a = A() # We do not pass any argument to the __init__ method
a.method_a('Sailor!') # We only pass a single argument
__init__
메서드는 대략 파이썬에서 생성자를 나타내는 것입니다. A()
를 호출하면 __init__
메서드에 첫 번째 매개 변수로 전달합니다. 추가 매개 변수 (예 : A(24, 'Hello')
)도 인수로 전달됩니다.이 경우 생성자가 예상하지 않기 때문에 예외가 발생합니다.
출처 : https://stackoverflow.com/questions/625083/what-init-and-self-do-in-python
728x90
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python에서 쿼리 문자열을 urlencode하는 방법 (0) | 2022.03.29 |
---|---|
파이썬에서 긴 여러 줄 문자열을 작성하는 방법 (0) | 2022.03.29 |
파이썬에서 && (AND 논리 연산자) 를 사용하는 방법 (0) | 2022.03.26 |
[Python 3] pip를 설치하는 방법 (0) | 2022.03.26 |
virtualenv 환경에서 Python 3 사용하기 (0) | 2022.03.26 |