본문 바로가기

python 기초강의

파이썬 class 기본 사용 문법 총정리 #21

파이썬 class 기본 사용 문법 총정리 #21

파이썬 class 기본 사용 문법 총정리 #21


안녕하세요.
오늘은 파이썬의 class에 대한 스터디를 했습니다.
class는 파이썬 개발을 하기위해서는 꼭 알아야할 내용은 하나죠.
오늘도 파이썬 한토막 함께 배워보도록 하겠습니다.
class는 좀 중요한 부분이닌깐 모두들 잘 알아 가셨으면 좋겠습니다.

파이썬 class란 무엇인가?

파이썬에서 class는 무엇이고 어떤 역할을 하는걸 까요?
우선 class란 객체지향 프로그래밍 언어에서는 가장 기본 단위가 되는 개념 입니다.
파이썬 코드 안에서 class를 정의 할때는 아래와 같이 정의를 할 수 있습니다.

class Class_name:
    pass

일반적으로 class명은 제일 앞에오는 글자를 대문자로 지정 합니다.

class는 객체의 구조를 정의 하고, 반복되는 복잡한 코딩이 필요할때 유용하게 사용 할 수 있습니다. 마치 붕어빵 틀과 같이 모양이 유사한것을 계속 만들어내야 할때 사용 하기 편합니다.

그렇다고 모든 파이썬 프로그래밍에서 class가 필요한것은 아닙니다. 대신 적재적소에 잘 쓴다면 정말 유용하게 쓰일수 있으면, 소스를 단순화 시킬수 있는 장점이 있습니다.

파이썬 class란 무엇인가?

파이썬 class 기본 문법 사용 예제

자, 그럼 우선 아래와 같이 예제 코드를 작성해보도록 하겠습니다.
아래 코드는 코드를 보시면 아시겠지만 class를 사용하지 않고 작성한 예제 코드 입니다.
바로 보실께요!

 

 

 

#class

# 손흥민 : 공격수
name1 = '손흥민'
shotting1 = 96
passing1 = 89
defence1 = 77

print("{} 선수가 팀에 합류 했습니다.".format(name1))
print("공격력 : {0}, 패싱력 : {1}, 수비 : {2}".format(shotting1,passing1,defence1))

# 이강인 : 미드필더
name2 = '이강인'
shotting2 = 89
passing2 = 94
defence2 = 83

print("{} 선수가 팀에 합류 했습니다.".format(name2))
print("공격력 : {0}, 패싱력 : {1}, 수비 : {2}".format(shotting2,passing2,defence2))

def shotting(name, shot_stat):
    print("{0} 선수가 골대를 향하여 {1} 만큼의 능력치로 슛을 했습니다.".format(name,shot_stat))

shotting(name1, shotting1)
shotting(name2, shotting2)

우선, 우리가 축구게임을 만든다고 가정하겠습니다.
물론, 이렇게 허접한 코드로 축구게임을 만들지는 않겠지만.. 그렇게 가정을 할께요.

축구게임에는 축구선수 케릭터가 있어야 겠죠. 손흥민 선수와 이강인 선수를 각각, name1, name2라는 변수에 넣고 슛팅, 패싱, 수비 능력치를 입력했습니다.
그리고나서 각 선수의 소개가 출력이 되고, 이 선수가 슛을 한 상황을 출력을 하게 했습니다.
결과는 아래와 같습니다.

파이썬 class 기본 문법 사용 예제1

자, 그럼 이젠 선수를 한 1만명정도 추가를 해야 할텐데 그때마다 name1, name2, name3... name10000 이렇게 입력을 각각 할수는 없을것 입니다.

이럴때 class를 이용 할 수 있겠죠.
그럼 위와 똑같은 프로그래밍을 class를 이용해서 파이썬 코드를 작성 해보도록 하겠습니다.
예제 코드는 아래와 같습니다.

#class
class Football_player:
    def __init__(self, name, shotting, passing, defence):
        self.name = name
        self.shotting = shotting
        self.passing = passing
        self.defence = defence

        print("{} 선수가 팀에 합류 했습니다.".format(self.name))
        print("공격력 : {0}, 패싱력 : {1}, 수비 : {2}".format(self.shotting,self.passing,self.defence))

player1 = Football_player("손흥민",96,89,77)
player2 = Football_player("이강인",89,94,83)

def shotting(name, shot_stat):
    print("{0} 선수가 골대를 향하여 {1} 만큼의 능력치로 슛을 했습니다.".format(name,shot_stat))

shotting(player1.name, player1.shotting)
shotting(player2.name, player2.shotting)

음.. 뭔가 예제 코드만 봐도 간결해진것 같아서 보기가 좋네요.
Football_player 라는 class를 정의를 했고, 그 안에 self.name, self.shotting, self.passing, self.defence 라는 변수를 생성하고, 인자값을 받아서 처리 하도록 했습니다. 그리고 입력된 선수들의 소개가 출력이 되도록 했구요.

이젠 그 아래를 보시면 class를 이용하는 부분이 있는데 바로 이 부분 입니다.

 

 

 

player1 = Football_player("손흥민",96,89,77)
player2 = Football_player("이강인",89,94,83)

여기서 player1,2 라는 변수를 만들어서 선수를 하나씩 등록을 해주면 됩니다.
이렇게 간단하게 class를 이용할수 있게된것 이죠.

그리고나서 가장 아래는 shotting이라는 함수를 정의했고, 그걸 이용해서 각 선수들의 슛팅능력치도 출력이 되도록 했습니다. 결과를 함께 보시겠습니다.

파이썬 class 기본 문법 사용 예제2

이렇게 똑같은 내용을 만들수 있게된것이죠.
어떤가요? class 어렵지 않으시죠?

다음시간에는 __init__ 에 관해서 스터디를 해보도록 하겠습니다.
감사합니다!!!

##이전 강의 보러 가기##

2020/11/18 - [python 기초강의] - 파이썬 with 기본 문법 사용법 #20

 

파이썬 with 기본 문법 사용법 #20

파이썬 with 기본 문법 사용법 #20 오늘도 힘차게 파이썬 스터디 한조각 달려보도록 하겠습니다. 오늘은 pickle과도 함께 쓸수 있고, 단독으로도 사용 할 수 있는 with문에 대한 내용 입니다. 파이썬 w

stricky.tistory.com

2020/11/17 - [python 기초강의] - 파이썬 pickle 기본 문법 #19

 

파이썬 pickle 기본 문법 #19

파이썬 pickle 기본 문법 #19 안녕하세요. 오늘은 파이썬에서 pickle을 사용하는 방법에 관해서 포스트를 작성합니다. pickle, 먹는건가 싶었지만 아니였네요...ㅎㅎ 그럼 pickle에 대해서 한번 알아볼께

stricky.tistory.com

2020/11/16 - [python 기초강의] - 파이썬 파일입출력 문법 #18

 

파이썬 파일입출력 문법 #18

파이썬 파일입출력 문법 #18 오늘은 파이썬 기본 문법 18번째 시간 파일입출력에 대한 내용입니다. 사실 오랫만에 쓰는거라, 저도 기쁜맘으로 열심히 써보도록 하겠습니다. 다 함께 열심히 하시

stricky.tistory.com



by.sTricky