상세 컨텐츠

본문 제목

파이썬 class 에 대해서

Coding/Python

by 세미531 2021. 12. 30. 15:23

본문

728x90

클래스는 객체의 구조와 행동을 결정하고 복잡하거나 반복되는 문제를 다루기 쉽게 한다.

인스턴스는 어떤 클래스 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

 

 

테슬라 사야지 ㅎ

728x90

관련글 더보기

댓글 영역