기타/Python

250611,13_클래스

baektree 2025. 6. 13. 22:00

요약/나만의 인사이트

  • 디폴트 매개변수(기본 매개변수) : def greet(name=”게스트’)
  • 함수의 범위(scope) : Local, Enclosing, Global, Built-in
  • 전역변수 - 함수 밖에
  • 지역 변수 - 함수 안에 함수 안에 전역변수 활용하고 싶으면 global 써주기
  • car1 = Car() # Car라는 클래스로 인스턴스 car1을 찍은 것
  • __ init __ () : 객체를 찍어낼 때 속성을 부여하는것
  • self 클래스안에 self는 찍히는 객체,자기자신을 나타냄
    • 클래스에 대해 더 알아보자
      • 클래스는 전체를 아우르는 설계도
      • 그래서 각각의 인스턴스를 나타내는 키워드를 self라고 한다. 이를 첫번째 자리에 넣는다.
      • 객체 하나하나 다른 이름을 명명하기 어렵기 때문에 self라고 통칭하는 것이다.
      • 첫번째 매개변수 self는 관용적 표현이기에 값을 넣어줄 필요가 없다.
      • 또한 객체를 찍을 때 __ init __함수가 자동 실행된다. 이는 값 초기화를 나타낸다.
      • __init __ 은 객체가 생성될 때 자동으로 호출되는 초기화 함수이다. 덕분에 객체를 만들자마자 원하는 초기 설정을 쉽게 할 수 있다. 자동으로 호출되도록 설계된 건 편의성과 코드 일관성을 위해서이다.

새롭게 알게 된 것

    • *args vs **kwargs 
        *args **kwargs
      의미 값만 여러 개 받음 키=값 형식으로 여러 개 받음.
      내부 구조 튜플(1, 2, 3) 딕셔너리({’a’ : 1, ‘b’ : 2})
      받는 형태 위치 인자(positional) 키워드 인자
    • # args -- 위치 인자
      def test_args(*args):
          print(args)
      
      test_args("사과", "바나나", "포도") #('사과', '바나나', '포도')
      
      # kwargs -- 키워드 인자
      def test_kwargs(**kwargs):
          print(kwargs)
      
      test_kwargs(fruits="사과", drinks="주스") # {'fruits': '사과', 'drinks': '주스'}
      
      
    • 데이터 전처리
      • 데이터 전처리: 내가 원하는 데이터를 보기 위해 하는 모든 활동, 데이터의 누락 값, 노이즈, 불일치, 이상치 등을 처리하여 데이터 품질을 향상
      • 데이터를 전처리 하는 이유?: 데이터 전달의 목적성, 효과성을 달성하기 위해
    • 판다스
      • 판다스란?
        • 파이썬에서 표 형태의 데이터를 쉽게 다루기 위한 도구(라이브러리)
        • 파이썬 속의 엑셀이라고 할 수 있다.
        • 파이썬 속의 엑셀파일 불러오기, 행과 열 선택하기, 데이터 정리하기, 통계 분석, 시각화, 전처리가 가능하다.
      • 핵심구조
        • Series(1차원 배열) : 컬럼이 1개 있는 형태
        • DataFrame(2차원 배열) : 컬럼이 2개 이상 있는 형태
        • index: 각 항목을 식별할 수 있도록 도와주는 목록
    • 제곱근 구하기
      • 9의 제곱근은 3
      • n의 제곱근을 x라고 하면
      • n**(0.5) = x
      • 관련 파이썬 문제
        def solution(n):
            # 제곱근을 구한다. 단 n의 0.5승은 실수로 반환되기에 꼭 int로 변환해준다.
            x = int(n** (0.5))
            # n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴
            if x * x == n:
                return (x + 1) **2
            #아니라면 -1 return
            else:
                return -1
            
        
    • 클래스
      • 클래스: 사용자 정의된 자료를 만들기 위한 설계도 붕어빵 기계
      • 인스턴스: 클래스로부터 만들어진 실체 슈크림 붕어빵, 팥 붕어빵
      • 속성: 인스턴스의 정보
      • 매소드: 인스턴스에 영향을 주고 받는 기능, 함수의 일종, 보통 소괄호로 끝남.
      Class 클래스명:
      	def __init__ (self) #클래스에서 인스턴스를 만들 때 실행되는 함수
      	    self.속성명 = 0 #속성을 정의
      	def 함수명(sef, 파라미터) # 함수를 이용해 기능을 정의
      
    • 클래스 예시
      post1 = Post() #Post라는 클래스를 이용해서 만들어진 객체를  post1이라는 이름에 저장해줘
      
      print(post1.likes)  # post1 인스턴스의 likes 속성 값을 출력해줘
      print(post1.comments)  # post1 인스턴스의 comments 속성 값을 출력해줘
      
      post1.get_like()  # post1 인스턴스의 get_like 메서드를 호출해 (좋아요 +1)
      print(post1.likes)  # 변경된 likes 값을 출력해줘
      
      post1.get_comment("좋은 글입니다.")  # post1 인스턴스의 get_comment 메서드로 댓글을 추가해
      print(post1.comments)  # 변경된 comments 값을 출력해줘
      
    • ```python
      post1 = Post() #Post라는 클래스를 이용해서 만들어진 객체를  post1이라는 이름에 저장해줘
      
      print(post1.likes)  # post1 인스턴스의 likes 속성 값을 출력해줘
      print(post1.comments)  # post1 인스턴스의 comments 속성 값을 출력해줘
      
      post1.get_like()  # post1 인스턴스의 get_like 메서드를 호출해 (좋아요 +1)
      print(post1.likes)  # 변경된 likes 값을 출력해줘
      
      post1.get_comment("좋은 글입니다.")  # post1 인스턴스의 get_comment 메서드로 댓글을 추가해
      print(post1.comments)  # 변경된 comments 값을 출력해줘
      ```

특히 어려웠던 것

  • [x] 클래스 어려워서 한 번 더 복습 완료!

다음에 적용해 볼 것

  • [ ] 데이터 기초반 세션 if, 클래스 수강 및 실습
  • [ ] 데이터 시각화 강의 완전 학습
  • [ ] sql, 알고리즘 코드카타 3문제씩 풀기
  • [ ] 파이썬 개인과제 복습