본문 바로가기
개발기록/python

[python] 파이썬 클래스 개념 (__init__, self)

by spectrum20 2024. 5. 19.

클래스 (Class)

: 동작(behavior, method, function)과 상태(state, attribute, variable)의 묶음
   → 객체를 찍어내기 위한 설계도

점프 투 파이썬

 
 

  • 클래스 만들기
# 클래스
class Person : 
	def setdata(self, name, age):
		self.name = name
		self.age = age
        
 
 # 객체 생성
 p1 = Person()
 p1.setdata('spectrum',20)

 

 

  • 클래스에 메소드 추가하기
class Person : 
	def setdata(self, name, age):
		self.name = name
		self.age = age
        
 	def walk(self):
		print('뚜벅뚜벅')
	def talk(self):
		print('안녕하세요')


 

  • __init__ 메소드

: 객체를 초기화해주는 메소드
객체를 생성할 때, 자동으로 호출됨 (강제성 부여)

class Person : 
	def __init__(self, name, age)
    	self.name = name
        self.age = age
        
p1 = Person('spectrum',20)

 
 

  • self

: 생성한 객체 그 자체
객체 생성시, self 인자를 넣어주지 않아도 그 값은 파이썬이 자동으로 넘겨준다

(* 메소드의 첫번째 인자로 객체를 self로 '항상' 넘겨준다)

 
self 를 통해, name, age 매개변수를 객체에 바인딩 할 수 있다

 

 

 

ex) self를 안넣으면?

self가 없어도 클래스를 생성할 수 있음

 

객체를 생성시키면, p1 객체를 자동으로 함수에 넘겨주기 때문에

self(p1), name, age 세 개의 인자가 넘어오지만, 함수가 받을 수 있는 인자는 2개라서 오류 발생

 

 

 

결론 : 잊지말고 self를 넣어주자~

 

 

 

 

 

 

반응형

댓글