오늘도 어제에 이어서 “한 번에 끝내는 파이썬 웹 개발 초격차 패키지 Online” 의 챕터 7-2. 딕셔너리를 듣고 정리해보았다. 참고로 이 포스팅은 공부용으로 강의 내용을 요약한 것으로 자세한 강의 내용은 위 링크를 참조 할 것.



아래는 공부 인증 사진.


2022-05-08-Python-Photo1

2022-05-08-Python-Photo2



1. 클래스와 객체

1. 클래스와 객체의 개념

  • 클래스: 객체를 만들기 위한 설계도
  • 객체: 설계도로부터 만들어낸 제품

  • 실습
# 클래스를 사용하는 이유
champion1_name = "이즈리얼"
champion1_health = 700
champion1_attack = 90

print(f"{champion1_name}님 소환사의 협곡에 오신것을 환영합니다.")

champion2_name = "리신"
champion2_health = 800
champion2_attack = 95

print(f"{champion2_name}님 소환사의 협곡에 오신것을 환영합니다.")

def basic_attack(name, attack):
    print(f"{name} 기본공격 {attack}")

basic_attack(champion1_name, champion1_attack)
basic_attack(champion2_name, champion2_attack)

  • 출력 결과
(myvenv) ➜  python_basic /Users/usr/Documents/pyt
hon_basic/myvenv/bin/python /Users/usr/Documents/
python_basic/myvenv/Chapter8/01.클래스개념.py
이즈리얼님 소환사의 협곡에 오신것을 환영합니다.
리신님 소환사의 협곡에 오신것을 환영합니다.
이즈리얼 기본공격 90
리신 기본공격 95

  • 위의 프로그램을 클래스로 만들어보자
print("=============클래스를 사용한 경우=============")

class Champion:
    def __init__(self, name, health, attack):
        self.name = name
        self.health = health
        self.attack = attack
        print(f"{name}님 소환사의 협곡에 오신것을 환영합니다.")
    def basic_attack(self):
        print(f"{self.name} 기본공격 {self.attack}")

ezreal = Champion("이즈리얼", 700, 90)
leesin = Champion("리신", 800, 95)
ezreal.basic_attack()
leesin.basic_attack()

  • 챔피언을 하나 더 추가해야하는 경우: 클래스 미사용
# 클래스를 사용하는 이유
champion1_name = "이즈리얼"
champion1_health = 700
champion1_attack = 90

print(f"{champion1_name}님 소환사의 협곡에 오신것을 환영합니다.")

champion2_name = "리신"
champion2_health = 800
champion2_attack = 95

print(f"{champion2_name}님 소환사의 협곡에 오신것을 환영합니다.")

#### 추가 및 수정이 필요한 부분 ####
champion3_name = "야스오"
champion3_health = 750
champion3_attack = 92

print(f"{champion3_name}님 소환사의 협곡에 오신것을 환영합니다.")
#### /추가 및 수정이 필요한 부분 ####

def basic_attack(name, attack):
    print(f"{name} 기본공격 {attack}")

basic_attack(champion1_name, champion1_attack)
basic_attack(champion2_name, champion2_attack)
basic_attack(champion3_name, champion3_attack) #### 추가 및 수정이 필요한 부분

  • 챔피언을 하나 더 추가해야하는 경우: 클래스 사용
print("=============클래스를 사용한 경우=============")

class Champion:
    def __init__(self, name, health, attack):
        self.name = name
        self.health = health
        self.attack = attack
        print(f"{name}님 소환사의 협곡에 오신것을 환영합니다.")
    def basic_attack(self):
        print(f"{self.name} 기본공격 {self.attack}")

ezreal = Champion("이즈리얼", 700, 90)
leesin = Champion("리신", 800, 95)
yasuo = Champion("야스오", 750, 92) # 추가 및 수정이 필요한 부분

ezreal.basic_attack()
leesin.basic_attack()
yasuo.basic_attack() # 추가 및 수정이 필요한 부분

  • 클래스를 사용하면 단 두줄만 수정하면 된다 ⇒ 객체를 많이 생산해내야 할 수 록 클래스 사용이 효율적

  • 클래스 = 속성 + 메서드(method)

    2022-05-08-Python-Photo3

    • 속성: 특징들을 나타낸 것
    • 메서드: 동작들을 나타낸 것



2. 클래스 만들기

class 클래스이름
    def 메서드이름(self):
       명령블록

# 예시
class Monster:
    def say(self):
        print("나는 몬스터다")

  • 만든 클래스를 호출하기
# 호출하기
인스턴스 = 클래스이름()
인스턴스.메서드()

# 예시
goblin = Monster()
goblin.say()
  • 인스턴스: 클래스와 연관지어 표현할 때 자주 사용하는 표현(객체와 유사)



3. 실습

  • 파이썬에서는 자료형도 클래스다
class Monster:
    def say(self):
        print("나는 몬스터다!")

goblin = Monster()
goblin.say()

# 파이썬에서는 자료형도 클래스다
a = 10
b = "문자열객체"
c = True

  • 결과 출력
(myvenv) ➜  python_basic /Users/jinipark/Documents/pyt
hon_basic/myvenv/bin/python /Users/jinipark/Documents/
python_basic/myvenv/Chapter8/02.클래스만들기.py
나는 몬스터다!
<class 'int'>
<class 'str'>
<class 'bool'>

  • 각 자료형이 class로 출력되는 것을 알 수 있다.
print(b.__dir__())
  • 문자열 객체에 대해 생성할 수 있는 메서드 확인

  • 출력 확인
(myvenv) ➜  python_basic /Users/usr/Documents/pyt
hon_basic/myvenv/bin/python /Users/usr/Documents/
['__new__', '__repr__', '__hash__', '__str__', '__getattribute__', '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__iter__', '__mod__', '__rmod__', '__len__', '__getitem__', '__add__', '__mul__', '__rmul__', '__contains__', 'encode', 'replace', 'split', 'rsplit', 'join', 'capitalize', 'casefold', 'title', 'center', 'count', 'expandtabs', 'find', 'partition', 'index', 'ljust', 'lower', 'lstrip', 'rfind', 'rindex', 'rjust', 'rstrip', 'rpartition', 'splitlines', 'strip', 'swapcase', 'translate', 'upper', 'startswith', 'endswith', 'removeprefix', 'removesuffix', 'isascii', 'islower', 'isupper', 'istitle', 'isspace', 'isdecimal', 'isdigit', 'isnumeric', 'isalpha', 'isalnum', 'isidentifier', 'isprintable', 'zfill', 'format', 'format_map', '__format__', 'maketrans', '__sizeof__', '__getnewargs__', '__doc__', '__setattr__', '__delattr__', '__init__', '__reduce_ex__', '__reduce__', '__subclasshook__', '__init_subclass__', '__dir__', '__class__']



이번 포스팅에서는 클래스와 객체의 개념에 대해 알아보았다. 다음 포스팅에서는 생성자에 대해 알아보도록 하자.


본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.



#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #캐시백챌린지 #캐시백 #환급챌린지 #한번에끝내는파이썬웹개발초격차패키지Online