클래스는 객체의 구조와 행동을 결정하고 복잡하거나 반복되는 문제를 다루기 쉽게 한다.
인스턴스는 어떤 클래스 A 의 객체 a 가 있을 때 a 는 클래스 A 의 인스턴스 이다. 아래 코드를 보며 간단히 알아보자.
Human 클래스를 만들고 이 Human 클래스에서 사람의 이름, 나이, 성별을 사용하기 위해서는 아래와 같이 def __init__(self) 에 name, age, sex 를 추가해줘야 한다. 이는 클래스의 생성자라고 한다.
class Human:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
이제 이렇게 지정된 이름, 나이, 성별을 프린트하는 함수를 작성해보자.
class Human:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def who(self):
print("name : {}, age : {}".format(self.name,self.age))
areum = Human('harry',23,'girl')
areum.who()
이렇게 who 함수를 작성하고 fomat을 해준다. 이는 아래에서 areum = Human(....) 에 작성해준대로 이름, 나이, 성별을 지정해준 다음 areum.who() 를 통해 areum 에서 지정해준 변수들로 who() 함수를 호출한다는 뜻이다. 그리고 who 함수에서 위의 변수들을 사용하기 위해 who(self) 와 같이 self 를 넣어주어야 한다.
이 다음으로 areum 과 같이 지정된 이름, 나이, 성별을 변경하고 싶을 때 사용할 수 있는 setInfo 함수를 만들어보자.
class Human:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def who(self):
print("name : {}, age : {}".format(self.name,self.age))
def setInfo(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
areum = Human('harry',23,'girl')
areum.who()
areum.setInfo('hao',44,'male')
areum.who()
이렇게 setInfo 함수 또한 (self) 를 넣어주고 이 setInfo 함수에서는 변수로 이름, 나이, 성별을 사용하기 때문에 (변수의 변경) setInfo(self,name,age,sex) 와 같이 작성해준다. 그리고 self.name = name 이런거는 맨 위의 __init__ 에서 정해준 self.name 을 name 이라는 변수명으로 사용하겠다는 명명이다.
따라서 위의 전체 코드를 실행시키면 아래와 같은 결과가 나온다.
name : harry, age : 23
name : hao, age : 44

| 파이썬 경로 확인, import os, pickle, sys (0) | 2022.01.23 |
|---|---|
| 파이썬 콜백함수, 람다, map(), filter() 함수 (0) | 2022.01.20 |
| #1 opencv study (0) | 2021.08.10 |
| 파이썬 반복문 제어 ) break 과 continue 구분 (0) | 2021.07.13 |
| 파이썬 리스트 ) 오름차순, 내림차순 정렬하기 (0) | 2021.07.13 |
댓글 영역