본문 바로가기

Python 파이썬

클래스(Class), 클래스 변수와 객체 변수, __init__

728x90

클래스 변수와 객체변수를 알아보자.

클래스 변수                 =  하나의 클래스로 만들어지는 모든 객체가 공유하는 변수

객체 변수(self 사용)  =  객체가 생성될 때마다 만들어지는 각 객체가 별도로 가지는 변수

 

다음을 보며 알아보자!

class Person:           # 클래스 정의
    dept = ""               # 비어있는 클래스 변수 생성
    def setinfo(self, name, age): # self를 사용한 객체 변수 생성
        self.name = name
        self.age = age
    def printinfo(self):
        print(Person.dept, self.name, self.age)


Person.dept = "영업부"  # 클래스 변수 정의!

p1 = Person()                     # p1에 Person클래스를 사용한다는 선언.
p1.setinfo("원빈", 40)     # 선언을 해야 클래스 내에 있는 함수들 사용가능
p1.printinfo()

p2 = Person()
p2.setinfo("조인성", 35)
p2.printinfo()

Person.dept = "인사부"

p1.printinfo()
p2.printinfo()

# 실행결과
영업부 원빈 40
영업부 조인성 35
인사부 원빈 40
인사부 조인성 35

 

__init__ 을 알아보자

 

계속 __init__ 이 클래스에 제일먼저 등장 하는데 무엇인지 알아보자!

 

__init__  ☞ Constructor (생성자)

  • 객체를 생성할 때 반드시 호출되는 메서드
  • 하나의 클래스에 __init__ 이름으로 하나만 가질수 있다.
  • 객체를 생성할 때 객체변수(멤버변수)의 초기값 설정에 활용.
class Point:                            # 클래스 Point 를 정의한다.
    def __init__(self, x, y):   # __init__ 생성자의 역할로 클래스를 생성.
        self.x = x                          # 클레스 객체변수1 지정 (클래스 내에서 사용하기 위해 지정함.)
        self.y = y                          # 클레스 객체변수2 지정 (클래스 내에서 사용하기 위해 지정함.)
    def prt(self):                       # 클래스 함수를 Method 메소드 라고 부름.
        print(f"x = {self.x}, y = {self.y}")
728x90

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

세터,게터 (Setter, Getter)  (0) 2023.10.23
클래스(Class)를 응용해 기능을 구현해보자  (0) 2023.10.23
클래스(Class), 객체지향 프로그래밍  (1) 2023.10.23
파일 입출력(File I/O)  (0) 2023.10.20
셋(set)  (1) 2023.10.20