Sign In
TIL 웹개발

TIL 웹 개발 - class 이해하기 init, instance, method

서경태
팀프로젝트로 class를 사용하게 되었다.
하지만 class가 대략 미리 만들어놓고 나중에 또 쓰기 위한 거다 정도로 이해하고 있어서 이번 포스팅을 통해 이해해보기로 하자.

init

일단, class 코드에 대해 찾아보면 항상 첫번째 함수는 __init__이 나온다.
class Person: def **init**(self, name, age): self.name = name # 인스턴스 변수 초기화 self.age = age # 인스턴스 변수 초기화 def introduce(self): print(f"Hello, I am {self.name} and {self.age} years old.") # 객체 생성 person1 = Person("Alice", 30) person2 = Person("Bob", 25) # 메서드 호출 person1.introduce() # "Hello, I am Alice and 30 years old." 출력 person2.introduce() # "Hello, I am Bob and 25 years old." 출력
init은 아마 initiail, initiative, initiation 등의 약자로 우선적인 느낌을 가진 함수일 것이다.
class 함수에서 init은 생성자(conductor)로 불리며 객체가 생성될 때, 자동으로 호출되는 특별한 메소드다.
좀 더 쉽게 이해하기 위해 역할에 대해 설명하면,
1.
객체 초기화 : 객체가 생성될 때 필요한 초기 설정이나 값들을 초기화하기 위해 사용된다.
위 코드에서 이름과 나이에 대한 정보를 받는 프로그램을 만든다면 처음 데이터를 생성하는 역할을 한다는 것이다.
2.
유연한 객체 생성 : 매개변수를 받아 객체 생성시 다양한 초기값을 설정할 수 있게 해줍니다.
그냥 새로운 객체를 생성할 때 이걸 사용해 쉽게 한다는 것이다. 위 코드 #객체생성 부분에서 보듯 person1 = class(데이터1, 데이터2) 를 넣어주면 바로 생성할 수 있다.
3.
명확한 코드 구조 : class 함수의 기준이 되다보니 코드 구조가 한눈에 보기 쉽게 해준다. 추후 유지보수에도 도움이 된다.

instance

인스턴스는 클래스에서 생성된 객체를 말한다. 위 코드에서 보면 person1, person2가 인스턴스에 해당한다.

method

메소드는 클래스나 인스턴스에서 호출할 수 있는 함수를 말한다.
1.
인스턴스 메소드
특정 인스턴스와 연관된 메소드로 self 매개변수를 통해 접근하고 조작한다.
위 코드에서 보면 def intoruduce(self): 가 인스턴스 메소드이다.
2.
클래스 메소드
클래스 자체에 연관된 메소드로 데코레이터로 사용된다. 데코레이터는 다음 기회에 알아보자.
Subscribe to 'kyugntae-ai'
Subscribe to my site to be the first to receive notifications and emails about the latest updates, including new posts.
Join Slashpage and subscribe to 'kyugntae-ai'!
Subscribe
👍