본문 바로가기

Language/Python15

[Python] 캡슐화(encapsulation) - @property 와 getter와 setter의 개념 @property의 개념 class Robot: __population = 0 def __init__(self, name, age): self.__name = name self.__age = age Robot.__population += 1 def __say_hi(self): print(f"Greetings, my masters call me {self.__name}.") droid = Robot("R2-D2", 2) print(droid.__age)#에러 >>> AttributeError: 'Robot' object has no attribute '__age' 클래스 변수와 인스턴스 변수, 인스턴스 메서드를 위와 같이 private 형태로 만들었다고 하자. 이 경우에 droid 인스턴스에 __age로 .. 2021. 12. 14.
[Python] 네임스페이스(namespace)에 대한 이해 네임스페이스(namespace)에 대한 이해 namespace: 개체를 구분할 수 있는 범위 __dict__ : 네임스페이스를 딕셔너리 형태로 확인할 수 있는 매직 메서드 class Robot: # 클래스 변수: 인스턴스들이 공유하는 변수 population = 0 # 생성자 함수 def __init__(self, name, code): #self는 각각의 인스턴스 self.name = name # 인스턴스 변수 self.code = code Robot.population += 1 # 인스턴스 메서드 def say_hi(self): print(f"Grettings, my masters call me {self.name}.") # 인스턴스 메서드 def cal_add(self, a, b): return a.. 2021. 12. 8.
[Python] 제네레이터(Generator)를 이용한 itertools 예시 병행성(Concurrency) : 한 컴퓨터가 여러 일을 동시에 수행 병렬성(Parallelistm) : 여러 컴퓨터가 여러 작업을 동시에 수행 단일 프로그램 안에서 여러 일을 쉽게 해결한다. 쓰레드는 한 개지만, 여러 일을 동시에 할 수 있기에 효율성이 매우 올라간다. 병행성에서 중요한 점은 하던 일을 기록해야한다는 점이다. def generator_ex1(): print('Start') yield 'A Point.' print('continue') yield 'B Point.' print('End') temp = iter(generator_ex1()) print(next(temp)) >>> Start >>> A Point. print(next(temp)) >>> continue >>> B Point... 2021. 12. 1.
[Python] 반복자(Iterator), 제너레이터(Generator)에 대한 이해 파이썬에는 원소를 받을 수 있는 다양한 자료구조가 있다. 특히 리스트, 딕셔너리 등은 여러 원소를 처리하는 대표적인 자료구조이다. 원소는 기본적으로 정적으로 만들어져서 반복 가능한 반복형(Iterable) 클래스이다. Iterable하다는 뜻은 반복 가능한 객체란 뜻이다. 이런 반복형 클래스를 동적 객체로 변환해 반복자로 만들고, 필요할 때마다 원소를 추출해서 처리하는 방식이 반복자(Iterator) 클래스이다. 즉, iterator란 반복 가능한 객체(리스트, 퓨플, 셋, 사전, 문자열)에서 반복문을 활용하여 데이터를 순회하면서 각 요소를 하나씩 꺼내 어떤 처리를 수행할 수 있도록 하는 간편한 방법을 제공하는 객체이다. Iterable과 Iterator는 ‘collections.abc’ 내장 모듈에 정.. 2021. 11. 24.