프로그래밍 언어/Python

파이썬 Python 실습 :: 클래스, 인스턴스

gamjadori 2024. 1. 12. 08:00
728x90

<클래스>

  • 클래스: 서로 관련있는 데이터나 기능들을 하나로 묶은 것
  • 객체: 어떠한 속성값과 행동을 가지고 있는 데이터
  • 형식
class 클래스이름:
    속성 = 0
    def 매서드이름(**self**):
        pass
  • 생성자 (_ init _): 객체를 생성할 때 자동으로 호출되는 메서드
>>> class Person: // 관례 상 클래스 이름 첫글자는 **대문자로 지정**
	    def greeting(self): >> 클래스 안에서 함수 선언할 때는 self 넣어야 함
	        print('Hello')
>>> person = Person() // ** 생성을 한 후 사용
>>> person.greeting()
Hello

>>> class Person:
		def __init__(self): // ** 생성자 (__init__): 클래스의 상태를 초기화하는 로직
				print('Hello init')
		def greeting(self)
				print('Hello')
>>> person = Person() // ** 생성을 한 후 사용
>>> person.greeting()
>>> print(type(person))
Hello init
Hello
<class '__main__.Person'>

 

<클래스 변수, 인스턴트 변수> 주로 인스턴스 변수 사용

  • 인스턴스: 클래스로 만든 객체
  • 인스턴스 변수: 메서드 안에 정의한 변수
  • 클래스 변수: 클래스의 인스턴스가 얼마나 많이 존재하는지에 관계 없이 하나의 사본이 존재하는 클래스에 정의된 변수
**** 인스턴스 변수**
>>> class Person:
	    def __init__(self):
	        self.hello = 'Hello' // 인스턴스 변수

	    def greeting(self):
	        print(self.hello)
>>> aa = Person // 생성자 생성
>>> aa.greeting()
Hello
>>> bb = Person()
>>> bb.greeting()
Hello

>>> class Person:
		def __init__(self, name, age, address): // 생성자에 파라미터 사용
	    self.name = name
		  self.age = age
	    self.address = address
	    self.hello = '안녕하세요.'
		def greerting(self):
		    print('{0} 저는 {1}입니다.'.format(self.hello, self.name))

>>> aa = Person('홍길동', 30, '부산')
>>> aa.greeting()
안녕하세요. 저는 홍길동입니다.

>>> print(aa.__name, bb.__name)
홍길동 길길동

>>> aa.__name = '홍길동2'
>>> aa.greeting
안녕하세요. 저는 홍길동2입니다.

**** 클래스 변수**
>>> class Person():
	    bag = list() // 클래스 변수=속성=상태: 클래스 내부에서 변수 선언
	    def put_bag(self, stuff):
        self.bag.append(stuff)
>>> aa = Person()
>>> aa.put_bag('책')
>>> bb = Person()
>>> bb.put_bag('열쇠')

>>> print(aa.bag)
['책', '열쇠']
>>> print(bb.bag)
['책', '열쇠']

>>> class Person():
	    bag = list() // 클래스 변수=속성=상태: 클래스 내부에서 변수 선언
			a = ''
	    def put_bag(self, stuff):
        self.bag.append(stuff)
				self.a = stuff
>>> aa = Person()
>>> aa.put_bag('책')
>>> bb = Person()
>>> bb.put_bag('열쇠')

>>> print(aa.bag, aa.a)
['책', '열쇠'] 책
>>> print(bb.bag, bb.a)
['책', '열쇠'] 열쇠