[Q] python 에서 self는 어떤건가요?

Soly; 독특하게·2021년 8월 29일
post-thumbnail
class Foo:
        def func1():
                print("function 1")
	def func2(self):
                print(id(self))
                print("function 2")
>>> f.func1()
Traceback (most recent call last):
  File "<pyshell#25>", line 1, in <module>
    f.func1()
TypeError: func1() takes 0 positional arguments but 1 was given
  • TypeError : 파이썬 메서드의 첫 번째 인자로 항상 인스턴스가 전달
>>> f = Foo()
>>> id(f) # id 라는 메모리를 확인하는 내장함수
43219856

즉, Foo()라는 class는 f라는 변수에 담았고,
이 f는 메모리에 할당되었는데,
이 메모리는 43219856 이라는 것이다.

  • class를 정의할 떄만 self를 넣어야 하고,
  • 메소드를 정의할때 첫번째 파라미터는 self여야 한다. 자신을 메소드로 넘겨야 그 뒤에 나오는 파라미터들이 작동한다.
profile
협업을 즐겨하는 목표지향적인, Front-End 개발자입니다.

0개의 댓글