TIL/Python

[TIL] 클래스와 객체

아람2 2024. 9. 20. 11:51
반응형

 

클래스 Class

객체를 만들기 위한 설계도 (템플릿 역할)

객체 Instance

클래스를 기반으로 만들어진 구체적인 실체

각 인스턴스는 클래스에서 정의한 속성과 메서드를 가진다 

node_a = Node('A') # node_a 는 Node 클래스의 객체

 

self 의 역할

1. 자기 참조 

클래스 내에 메서드가 호출될 때, 그 메서드가 소속된 객체 자신을 참조한다 

즉, 클래스의 인스턴스 (객체) 자신을 가리킨다 

2. 객체의 속성과 메서드 접근

self 를 통해 각 객체의 속성이나 메서드에 접근할 수 있다

그래서 각 객체가 독립적으로 데이터를 저장하고 동작할 수 있다 

class Node:
	def __init__(self, value):
    	self.value = value # self.value 는 현재 객체의 value 속성
        
    def print_value(self):
	    print(self.value) # 현재 객체의 value 출력

. dot 의 역할

1. 속성 접근 

객체의 속성이나 메서드에 접근할 때 사용 

2. 메서드 호출

현재 객체의 특정 기능 (메서드) 실행할 때 사용 

node_a = Node('A')
node_a.print_value() # A 출력

 

self 와 dot 예시

class Dog:
    def __init__(self, name):
        self.name = name  # 개의 이름을 저장하는 속성

    def bark(self):
        print(f"{self.name} says Woof!")  # 개가 짖는 메서드

# 객체 생성
dog1 = Dog("Buddy")
dog2 = Dog("Max")

# 각각의 객체 메서드 호출
dog1.bark()  # "Buddy says Woof!"
dog2.bark()  # "Max says Woof!"

1. 객체 생성 - dog1 과 dog2 는 Dog 클래스의 인스턴스, 각각의 이름 (name) 속성이 다르게 설정된다

2. 메서드 호출 - dog1.bark() 를 호출하면, self 는 dog1 을 참조하게 되고 self.name 은 "Buddy" 가 된다

self 는 메서드가 호출된 객체를 참조하여 객체의 속성과 메서드에 접근하는 데 사용된다

. 은 객체의 속성과 메서드에 접근하는 데 필수적인 연산자로, 객체 지향 프로그래밍에서

각 객체가 독립적으로 상태를 유지하고 동작할 수 있게 한다 

반응형