최대 1 분 소요

self

  • python의 method는 항상 첫번쨰 인자로 self를 전달
  • self는 현재 해당 method가 호출되는 객체 자신을 가리킴
  • C++/C#, Java의 this에 해당
  • 이 역시 이름이 self일 필요는 없으나, 위치는 항상 맨 처음의 parameter이며 관례적으로 self 사용
class Person:
	def __init__(self, name, age):
    	print('self: ', self)
    	self.name = name
        self.age = age

a = Person('Aaron', 20)
b = Person('Bob', 30)

print(a)
print(b)
self: <__main__.Person object at 0x10787af98>
self: <__main__.Person object at 0x10787aac8>
<__main__.Person object at 0x10787af98>
<__main__.Person object at 0x10787aac8>

self는 해당 method가 호출되는 객체 자신을 가리킴

class Person:
	def __init__(self, name, age):
    	print('self: ', self)
    	self.name = name
        self.age = age

	def sleep(self):
        print('self: ', self)
    	print(self.name, '은 잠을 잡니다.')

a = Person('Aaron', 20)
b = Person('Bob', 30)

print(a)
print(b)

a.sleep()
b.sleep()
self: <__main__.Person object at 0x10787af98>
self: <__main__.Person object at 0x10787aac8>
<__main__.Person object at 0x10787af98>
<__main__.Person object at 0x10787aac8>
self: <__main__.Person object at 0x10787af98>
Aaron 은 잠을 잡니다.
self: <__main__.Person object at 0x10787aac8>
Bob 은 잠을 잡니다.

멤버함수(method)에서 속성에 접근할 수 있음

태그:

카테고리:

업데이트:

댓글남기기