Class

이찬·2023년 7월 23일
0
post-thumbnail
  • object(= instance) : 객체 지향 프로그래밍 object oriented programming

  • data type = class

  • Method (= Member Function)

  • isinstance(사례, type or 만든 class)

class에 있는 method 호출하는 방법
1. 객체 이름.method() => 사실 self로 주어지기에 동일함
2. 클래스 이름.method(입력 parameter로 변수 입력)

  • 많은 객체가 형성되다 보니 method 입장에서는 어떤 객체가 자신을 불렀는 지 알아야 하기에, self를 첫번재 매개변수로 입력

  • inheritance 상속


    가장 위의 object를 모두 상속 받음 => 모든 class들은 object의 후예

  • 조상의 것을 접근할 때는 super()로 불러왔지만, 사용할 때는 하위 class로 불러와도 됨!

객체에 data를 저장하는 방법

  1. class 안에 바로 변수 적기
  2. className.변수병 = 대입하고 싶은 값
    (정의하지 않은 변수명을 생성)
  3. __init__이라는 메서드에 self.변수 = 변수 방식으로 만들기 => 가장 권장하는 방법

class variable vs instance variable
class variable : class가 가지는 값
- 주로 처음 값을 0으로 설정하고 constructor가 호출될 때마다 +1을 해서 해당 class에서 만들어지는 전체 객체의 수를 파악하는 데 쓰임

  • class에서 만들어지는 모든 객체가 공유하는 값

instance variable : 객체에 저장하는 변수

  • class variable

  • instance variable


__init__ 생성자 (constructor)

  • 객체가 만들어질 때 파이썬에 의해 최초로 호출됨
  • return 값이 없고, 입력 parameter를 전달 가능

__str__ 메서드

  • print(객체 이름) or str() 메서드에 입력값으로 줄 때
    => print함수에 입력값은 문자열이어야하는데, 우리의 member class는 한 번도 문자열로 만들어 준 적이 없음 => str메서드를 채워야함

클래스 자체의 내용을 출력하고 싶을 때(init에서 규정한), 형식을 지정하는 메서드

  • 객체 자체를 출력할 때 넘겨주는 형식을 지정해주는 메서드이다.

  • 파이썬에서 어떤 값을 문자열로 변환하는데 사용하는 str()은 내장함수가 아닌 파이썬 내장 클래스이며, 객체를 만들고 그 객체의 정보(class 이름, 저장 위치)를 알고 싶을 때 print(객체이름)를 사용하는데, 이는 object 클래스의 __str__메서드가 호출되어 반환된 문자열 정보이다.

class Blog():
    def __init__(self, title, date):
        self.title = title
        self.date = date
    def __str__(self):
        return '제목: {}, 날짜: {}'.format(self.title, self.date)
blog = Blog('파이썬 공부', 200724)
print(blog)

>>> 제목: 파이썬 공부, 날짜: 200724

__init__메서드에서 정의한 내용이 __str__메서드로 적용되는 과정

  • 이러한 str의 문자열 반환 기능을 오버라이딩하여 쓸 수 있다.

__repr__

  • 사용자가 객체 자체를 이해할 수 있게 표현해주는 메서드이다. => representation

__eq__

==이 호출되면, python에서는 eq 메서드를 찾음

eq 메서드가 정의가 안 되면, 기능 수행 불가


  • class가 저장된 파일을 module로 불러오고 변수 = moduleName.class() 방식으로 객체 만들기

사용자가 mmodule로 작업을 하다,

import importer
import.reload(해당 모듈)

Private variables and methods

  • information hidings

polymorphism 다형성
하나의 모습인 것 같지만 실제로 실행하면 서로 다른 동작을 수행하는 것


생성자, 비교 연산자 __add__, __sub__
=> 파이썬에 이미 이름이 정해진 method가 어느 연산자와 매칭되는지 dir로 int나 float를 하면 add나 sub가 있음


출처 : 경희대학교 웹/파이썬 프로그래밍 이성원 교수님 강의

profile
Kyunghee univ. IE 21

0개의 댓글