본문 바로가기
FastCampus/한 번에 끝내는 파이썬 웹 개발 초격차 패키지 Online.

한 번에 끝내는 파이썬 웹 개발 초격차 패키지 48일차

by Dream_World 2021. 10. 23.

파이썬 심화 문법

오늘 부터 패턴을 바꾸기 위해 아침 일찍 기상 이후 대청소도 함께 진행하였다. 개운한 마음으로 이렇게 파이선 공부를 진행하고자 한다. 어제까지 함수 중급 파트를 마치고 오늘부터 클래스 파트로 진행된다. 나는 이상하게 언어 공부를 하면 Javascript랑 다 비교하게 되는 습관이 있다. 내가 유일하게 끝까지 배우고 프로젝트 진행했던 언어가 Javascript이었던 부분인지 python 공부하면서 같은 문법이 나오면 되게 반가운 느낌이 든다. 클래스 활용되게 좋아하고 잘 사용했었다. 이상하게 시큐어 코딩 할 당시 java 언어에서는 클래스를 이해 못 했었던 기억이 떠오른다. java도 다시 공부해봐야 하는데 이제는 여러 언어를 접하다 보니 익숙해져서 그런지 눈에 들어오는 느낌이 든다. 왜 공부를 반복 학습 해야 하는지 알 것도 같은 느낌이다. 모르면 알 때까지 하면 되는데 왜 나는 시작부터 안 되면 좌절하고 포기하고 미루기만 했던 부분이 컸는지 반성하게 된다. 앞으로는 복습 반복을 꾸준히 해서 내 것으로 만들고 그것으로 인해 프로그램도 만들어보고 투자 할 수 있을 것 같다. 지금은 내가 공부해야 할 양이 많기도 하지만 그것을 어떻게 나누어서 분할 공부가 될지 모르지만, 최선을 다해 봐야겠다.

 


클래스

클래스와 객체

1. 절차 지향 vs 객체 지향

절차 지향 프로그래밍

- 기능들을 어떤 순서로 처리할 것인가에 초점을 맞춘다.

객체 지향 프로그래밍

- 객체가 중심이 되고, 객체를 정의하고 객체간 상호작용에 초점을 맞춘다.

 

2. 클래스와 객체의 개념

클래스

- 객체를 만들기 위한 설계도

- 속성, 메서드

 

객체

- 설계도로부터 만들어낸 제품

 

클래스 만들기

# 클래스 만들기
'''
class 클래스이름:
    pass
'''
    
class Unit:

 

객체 만들기

# 객체 만들기
인스턴스 = 클래스이름()

 

속성 추가하기

# Unit클래스에 속성을 추가
# 1. 이름, 2. 체력, 3. 방어막, 4. 공격력

    def __init__(self, name, hp, shield, demage):
        self.name = name
        self.hp = hp
        self.shield = shield
        self.demage = demage
        print(f"[{self.name}](이)가 생성 되었습니다.")
        
probe = Unit("프로브", 20, 20, 5)
zealot = Unit("질럿", 100, 60, 16)
dragoon = Unit("드라군", 100, 80, 20)
        
>>> [프로브](이)가 생성 되었습니다.
>>> [질럿](이)가 생성 되었습니다.
>>> [드라군](이)가 생성 되었습니다.

 

메서드 추가하기

# Unit클래스에 메서드를 추가
# 1. 정보 출력

    def __str__(self):
        return f"[{self.name}] 체력 : {self.hp} 실드 : {self.shield} 공격력 : {self.demage}"
        
print(probe)
print(zealot)
print(dragoon)

>>> [프로브] 체력 : 20 실드 : 20 공격력 : 5
>>> [질럿] 체력 : 100 실드 : 60 공격력 : 16
>>> [드라군] 체력 : 100 실드 : 80 공격력 : 20

 


오늘은 클래스와 객체에 대해서 학습해보는 시간을 가졌다. 기존에 기초 문법에서도 클래스를 다루긴 했지만, 심화 문법적으로 다루니 또 새삼 다르게 느껴지긴 한다. 강의를 보면 실습한 스타크래프트 속성, 메서드를 추가해보면서 어떤 값이 출력되는지 볼 수 있었다. 이번에는 소스를 다 공개해서라도 봐야 하는 부분이기에 블로그에 글로써 남긴다. 강의를 보다 보면 메서든 추가 부분에

def __str__(self):
    print(f"[{self.name}] 체력 : {self.hp} 실드 : {self.shield} 공격력 : {self.demage}")
    
>>> TypeError: __str__ returned non-string (type NoneType)

Type Error를 보면서 당황했다. 문자열이 아닌 값을 반환했다고 에러를 보면서 return을 입력하고 해결 할 수 있었다. 강의가 너무 자연스레 넘어가서 당황했는데 실습 부분에는 신기하게 print 없이 바로 return 입력하시길래 또 당황했다. 무언가의 습관으로 인해 작성된 느낌을 받으면 오늘 강의도 재밌게 진행하였다.
48일 차는 여기서 마무리하고자 합니다.



패스트캠퍼스 링크 : https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

댓글