Sparta Coding Club/Today I Learned [TIL]

[TIL] #DAY - 010 - 파이썬 심화과정(1) (내일배움캠프AI 3기, class, method, self, instance)

양한마리 2022. 9. 13. 23:57
728x90



 

파이썬 심화과정을 시작했다.

class 어렵다 어려워 이해하는데 힘들었다.

하지만 이해하니깐 당장 사용하는데는 문제가 없다!

쟝고하면서 진짜 쓰는 이유를 알수있다는데 쟝고는 어떨지 기대반 걱정반,,,,

화이팅 해보자고

 


 

Python 강의 4일차

  1. Python 언어의 이해
  2. Python 기초
  3. Python 활용
    • ↑ 3일차 수업 끝
    • ↓ 4일차 수업 시작
  4. Python 심화
    • class에 대한 이해
      • class란? # 선언된 class로 instance를 만들어 사용
        • instance : class를 사용해 생성된 객체
        • method : 메소드란 클래스 내에 선언된 함수이며, 클래스 함수라고도 한다.
        • self : 메소드를 선언할 때에는 항상 첫 번째 인자로 self를 넣어줘야 한다.
      • __init__ 함수 # class에 __init__ 메소드를 사용할 경우 인스턴스 생성 시 해당 메소드가 실행
        • class CookieFrame() :      def __init__(self, name) :
      • class 기본 구조 및 활용(참고자료1)
    • mutable 자료형과 immutable 자료형
      • mutable과 immutable이란?
        • mutable은 값이 변한다는 의미이며, immutable은 값이 변하지 않는다는 의미입니다.
        • int, str, list 등 자료형은 각각 mutable 혹은 immutable한 속성을 가지고 있다.
      • immutable 속성 자료형
        • int, float, str, tuple
      • mutable 속성 자료형
        • list, dict
      • 코드에서 mutable과 immutable의 차이 비교해보기(참고자료2)

class 기본 구조 및 활용 (참고자료1)

 

# 기본 구조

class CookieFrame(): # CookieFrame이라는 이름의 class 선언
    def set_cookie_name(self, name): 
        self.name = name

cookie1 = CookieFrame()
cookie2 = CookieFrame()

cookie1.set_cookie_name("cookie1") # 메소드의 첫 번째 인자 self는 무시된다.
cookie2.set_cookie_name("cookie2")

print(cookie1.name) # cookie1
print(cookie2.name) # cookie2


# __init__ 구조

# class에 __init__메소드를 사용할 경우 인스턴스 생성 시 해당 메소드가 실행된다.
class CookieFrame():
    def __init__(self, name):
        print(f"생성 된 과자의 이름은 {name} 입니다!")
        self.name = name

cookie1 = CookieFrame("cookie1") # 생성 된 과자의 이름은 cookie1 입니다!
cookie2 = CookieFrame("cookie2") # 생성 된 과자의 이름은 cookie2 입니다!


# class 활용

from pprint import pprint

class Profile:
    def __init__(self):
        self.profile = {
            "name": "-",
            "gender": "-",
            "birthday": "-",
            "age": "-",
            "phone": "-",
            "email": "-",
        }
    
    def set_profile(self, profile):
        self.profile = profile
        
    def get_profile(self):
        return self.profile
    
profile1 = Profile()
profile2 = Profile()

profile1.set_profile({
    "name": "lee",
    "gender": "man",
    "birthday": "01/01",
    "age": 32,
    "phone": "01012341234",
    "email": "python@sparta.com",
})

profile2.set_profile({
    "name": "park",
    "gender": "woman",
    "birthday": "12/31",
    "age": 26,
    "phone": "01043214321",
    "email": "flask@sparta.com",
})

pprint(profile1.get_profile())
pprint(profile2.get_profile())

# result print
"""
{   
    'name': 'lee',
    'gender': 'man',
    'birthday': '01/01',
    'age': 32,
    'phone': '01012341234',
    'email': 'python@sparta.com'
}
{
    'name': 'park',
    'gender': 'woman',
    'birthday': '12/31',
    'age': 26,
    'phone': '01043214321',
    'email': 'flask@sparta.com'
}
"""

코드에서 mutable과 immutable의 차이 비교해보기(참고자료2)

 

immutable = "String is immutable!!"
mutable = ["list is mutable!!"]
 
string = immutable
list_ = mutable

string += " immutable string!!"
list_.append("mutable list!!")

print(immutable)
print(mutable)
print(string)
print(list_)

# result print
"""
String is immutable!!
['list is mutable!!', 'mutable list!!']
String is immutable!! immutable string!!
['list is mutable!!', 'mutable list!!']
"""

 

 


09/13 파이썬 과제

클래스 활용해보기

아래 과제는 모두 클래스를 활용해서 풀어주세요


1. 도형 넓이 계산기

요구조건

  • 인스턴스를 선언할 때 가로, 세로 길이를 받을 수 있는 클래스를 선언해 주세요
  • 인스턴스에서 사각형, 삼각형, 원의 넓이를 구하는 메소드를 생성해주세요
    • 원의 넓이를 계산할 때는 세로 길이는 무시하고, 가로 길이를 원의 지름이라 가정하고 계산해 주세요

과제 링크 : [Python] 활용편 - 04 - Class 함수(1)(도형 넓이 계산기 만들기)


2. 계산기 만들어보기(with class)

요구조건

  • 설정한 숫자를 계산해줄 클래스를 선언해주세요
  • 메소드를 호출해서 num1, num2를 설정할 수 있도록 해주세요
  • 입력된 숫자의 더하기, 빼기, 곱하기, 나누기 연산 결과를 구하는 메소드를 생성해주세요

과제 링크 : [Python] 활용편 - 05 - Class 함수(2)(계산기 만들기 with class)


3. 프로필 관리 기능 만들어보기

요구조건

  • 사용자들의 프로필을 관리할 수 있는 클래스를 선언해주세요
  • 메소드를 호출해서 사용자의 프로필을 설정할 수 있도록 해주세요
  • 사용자의 정보를 각각 출력할 수 있는 메소드를 만들어주세요

과제 링크 : [Python] 활용편 - 06 - Class 함수(3)(프로필 관리 기능 만들기)


 

클래스 확실히 할라구 과제 야무지게 했다..

 

728x90
반응형