AI/Python
[Python] 클래스 멤버변수, 싱글톤 패턴과 동시성 문제
brave_sol
2025. 2. 11. 23:27
1. 멤버 변수란?
- 클래스 내부에서 정의된 변수
- 객체(인스턴스)의 속성을 저장하는 역할
1) 클래스 변수
- 클래스명.변수명으로 선언
- 모든 객체가 공유하는 변수
2) 인스턴스 변수
- self.변수명으로 선언
- 각 객체(인스턴스)마다 개별적으로 존재하는 변수
- 즉, 객체마다 다른 값을 가질 수 있음
class Person:
species = "Human" # 클래스 변수
def __init__(self, name, age):
self.name = name # 인스턴스 변수
self.age = age # 인스턴스 변수
p1 = Person("Alice", 25)
p2 = Person("Bob", 30)
print(p1.name, p1.age) # Alice 25
print(p2.name, p2.age) # Bob 30
print(p1.species) # Human
print(p2.species) # Human
p1.species = "Alien"
print(p1.species) # Alien
print(p2.species) # Human
print(Person.species) # Human
3. 싱글톤 패턴과 동시성 문제
- 여러 개의 작업(코루틴)이 동시에 실행되면 싱글톤 객체가 여러 개 생길 수 있어 싱글톤 패턴이 깨질 수 있다.
반응형