-
파이썬 기초 개념 : 클래스, 객체, 인스턴스, 메서드, 어트리뷰트데이터 분석 공부/파이썬 데이터 분석 2024. 3. 31. 17:53728x90
클래스(Class)
- 사용자 정의 객체를 만들기 위한 주형 (틀, 설계도)
- 보통 클래스의 인스턴스를 대상으로 연산하는 메서드 정의를 포함
- 클래스명으로 주로 PascalCase를 씀
class ClassName: def method_name(self): method_body class_body ...
객체(Object)
인스턴스(Instance)
- 특정 클래스로부터 만들어진 실체(객체)
- 결국 객체와 같은 말인데, 클래스와 같이 언급할 때 인스턴스라고 좀 더 많이 씀
- 클래스명 오른편에 소괄호를 붙여서 인스턴스를 생성
instance_variable = ClassName()
메서드(Method)
- 객체가 갖는 기능, 행동을 메서드라고 함
- 클래스 바디 안에서 정의되는 함수
- 메서드가 클래스의 인스턴스의 어트리뷰트(attribute)로서 호출되면, 첫번째 인자로 인스턴스 객체(self)를 받음
- 첫 번째 인자(self)를 설정하지 않으면 에러가 발생함
셀프(self)
- 인스턴스 자기 자신을 의미
- 메서드를 호출하면 현재 인스턴스가 자동으로 매개변수 self에 들어옴
- 때문에, dot notation을 활용해 인스턴스의 속성을 출력할 수 있음
클래스의 속성(Attribute)
- 객체가 가진 데이터를 클래스의 속성이라 부름
- __init__ 메서드 안에서 self.속성 에 값을 할당하면 클래스의 속성을 만들 수 있음
- __init__(self)는 생성자를 나타내며, 클래스로 하여금 인스턴스가 생성될 때 최초 한 번 실행되는 특수한 매직 메소드
class ClassName: def __init__(self): self.속성 = 값
예시
class Person: def __init__(self): self.hello = "안녕하세요" #인스턴스의 속성 hello를 만들고 그 값으로 "안녕하세요"를 초기화했습니다. def greeting(self): print(self.hello) james = Person() # 클래스를 인스턴스화 함. 여기서 생성자가 호출됨. james.greeting() # 출력값: 안녕하세요.
- 속성 값을 추가로 할당하려면 __init__ 메서드에서 self 다음에 값을 받을 매개변수를 지정하고, self.속성에 할당함
class ClassName: def __init__(self, param1, param2): self.attr1 = param1 self.attr2 = param2
비공개 속성
- 인스턴스의 속성 값을 변경하지 못하도록 막고 싶을 때, 속성 앞에 던더(더블언더스코어)(__)를 붙이면 됨
class Person: def __init__(self, name, age, wallet): self.name = name self.age = age self.__wallet = wallet # 변수 앞에 __를 붙여서 비공개 속성으로 만듬 def pay(self, amount): if self.__wallet < amount: print("돈이 모자랍니다.") return self.wallet -= amount # 비공개 속성은 클래스 안의 메서드에서만 접근할 수 있음 print(f"이제 {self.__wallet}원 남았습니다.") maria = Person("마리아", 20, 10000) maria.__wallet -= 10000 # 클래스 바깥에서 비공개 속성에 접근하면 에러 발생 maria.pay(3000) #출력값: 이제 7000원 남았습니다.
'데이터 분석 공부 > 파이썬 데이터 분석' 카테고리의 다른 글
Beautiful Soup 활용 크롤링, 헤더 치환, 파일과 폴더 생성 및 저장 (0) 2024.04.02 파이썬 기초 개념: 모듈(module) 생성 및 저장하기 (0) 2024.04.02 플레이데이터 데이터 엔지니어링 코스 1일차 : 리스트, 인덱싱, 논리연산자 (0) 2024.04.01 파이썬 클래스 상속하기 (부모클래스, 자식클래스) (0) 2024.04.01 파이썬 pandas 기초 ) 데이터프레임 합치기 (concat, merge) (0) 2021.02.02