프로그래밍

[Python] 클래스와 객체2 본문

Python/파이썬 기초

[Python] 클래스와 객체2

시케 2023. 11. 7. 18:30
728x90
반응형

클래스와 객체2

 

 

생성자

생성자를 활용하면 값을 가지고 있는 인스턴스를 만들 수 있다

생성자는 인스턴스를 생성할 때 자동으로 호출된다

모든 클래스는 __init__()라는 이름을 가진 생성자를 가지고 있다

>>> class Candy:

	def __init__(self, shape, color):
    	self.shape = shape
        self.color = color

>>> satang = Candy('circle', 'brown')

소멸자

소멸자는 인스턴스를 소멸할 때 자동으로 호출된다

모든 클래스는 __del__()이라는 이름을 가지고 있다

>>> class Sample:

	def __del__(self):
    	print('인스턴스가 소멸됩니다')

>>> sample = Sample()
>>> del sample

클래스 변수

클래스를 구현할 때마다 서로 다른 값을 가지는 경우 인스턴스 변수를 사용한다

모든 인스턴스가 동일한 값을 가질 때는 클래스 변수로 처리하여 모든 인스턴스들이 공유토록 한다

 

>>> class Korean:

	country = '한국' # 클래스 변수
    
    def __init__(self, name, age, address):
    	self.name = name
        self.age = age
        self.address = address

>>> man = Korean('홍길동', 35, '서울')
>>> man.name
'홍길동'
>>> Korean.name
AttributeError: type object 'Korean' has no attribute 'name'
>>> man.country
'한국'
>>> Korean.country
'한국'

 

인스턴수 변수는 self를 붙이지만 클래스 변수는 그렇지 않는다

구분 인스턴스 변수 클래스 변수
목적 인스턴스마다 다른 값 저장 인스턴스가 공유하는 값 저장
접근 방식 인스턴스 접근(O)
클래스 접근(X)
인스턴스 접근(O)
클래스 접근(O)

 

클래스 메서드

클래스 메서드란 클래스 변수를 사용하는 메서드이다

 

728x90
반응형

'Python > 파이썬 기초' 카테고리의 다른 글

[Python] 클래스와 객체(클래스, 객체, 인스턴스)  (0) 2023.11.07
[Python] 파일 입출력  (0) 2023.11.07
[Python] 모듈과 import  (0) 2023.11.07
[Python] 사용자 함수  (0) 2023.11.06
[Python] 메서드  (0) 2023.11.06
Comments