분류 전체보기414 이터레이터(iterator) 이터레이터(iterator)는 값을 차례대로 꺼낼 수 있는 객체(object)입니다.데이터 생성을 뒤로 미루는 것인데 이런 방식을 지연 평가(lazy evaluation)라고 합니다.참고로 이터레이터는 반복자라고 부르기도 합니다. 이 책에서는 이터레이터를 사용하겠습니다.1. 반복 가능한 객체 (iterable)반복 가능한 객체는 말 그대로 반복할 수 있는 객체인데우리가 흔히 사용하는 문자열, 리스트, 딕셔너리, 세트가 반복 가능한 객체입니다.즉, 요소가 여러 개 들어있고, 한 번에 하나씩 꺼낼 수 있는 객체입니다.객체가 반복 가능한 객체인지 알아보는 방법은 객체에 __iter__ 메서드가 들어있는지 확인해보면 됩니다. dir(객체)>>> dir([1, 2, 3])['__add__', '__class__'.. 2026. 1. 29. Exception 1. try except로 사용하기예외 처리를 하려면 다음과 같이 try에 실행할 코드를 넣고 except에 예외가 발생했을 때 처리하는 코드를 넣습니다.try: 실행할 코드except: 예외가 발생했을 때 처리하는 코드 2. 특정 예외만 처리하기이번에는 except에 예외 이름을 지정해서 특정 예외가 발생했을 때만 처리 코드를 실행하도록 만들어보겠습니다.try: 실행할 코드except 예외이름: 예외가 발생했을 때 처리하는 코드 try_except_exception.pyy = [10, 20, 30] try: index, x = map(int, input('인덱스와 나눌 숫자를 입력하세요: ').split()) print(y[index] / x)except ZeroDiv.. 2026. 1. 29. 덕타이핑 / 믹스인 덕타이핑덕 타이핑이란 무엇인가요? 덕 타이핑은 실제 타입(클래스)은 상관하지 않고, 구현된 메서드로만 판단하는 방식입니다.덕 타이핑은 "만약 어떤 새가 오리처럼 걷고, 헤엄치고, 꽥꽥거리는 소리를 낸다면 나는 그 새를 오리라 부르겠다."라는 덕 테스트(오리 테스트)에서 유래한 말입니다. class Duck: # 오리 클래스를 만들고 quack과 feathers 메서드 정의 def quack(self): print('꽥~!') def feathers(self): print('오리는 흰색과 회색 털을 가지고 있습니다.') class Person: # 사람 클래스를 만들고 quack과 feathers 메서드 정의 def quack(self).. 2026. 1. 29. 두점 사이 거리구하기 import mathclass Point2D: def __init__(self, x, y): self.x = x self.y = yp1 = Point2D(x=30, y=20) # 점1p2 = Point2D(x=60, y=50) # 점2a = p2.x - p1.x # 선 a의 길이b = p2.y - p1.y # 선 b의 길이c = math.sqrt(math.pow(a, 2) + math.pow(b, 2)) print(c) # 42.42640687119285 import mathclass Point2D: def __init__(self, x=0, y=0): self.x = x self.y = ylength = 0.0p = [Point2.. 2026. 1. 29. 추상 클래스 추상 클래스파이썬은 추상 클래스(abstract class)라는 기능을 제공합니다.추상 클래스는 메서드의 목록만 가진 클래스이며 상속받는 클래스에서 메서드 구현을 강제하기 위해 사용합니다. 먼저 추상 클래스를 만들려면 import로 abc 모듈을 가져와야 합니다( abc는 abstract base class의 약자입니다). 그리고 클래스의 ( )(괄호) 안에 metaclass=ABCMeta를 지정하고, 메서드를 만들 때 위에 @abstractmethod를 붙여서 추상 메서드로 지정합니다.from abc import * class 추상클래스이름(metaclass=ABCMeta): @abstractmethod def 메서드이름(self): 코드 여기서는 from abc import .. 2026. 1. 29. object 클래스 object 클래스파이썬에서 object는 모든 클래스의 조상입니다. 그래서 int의 MRO를 출력해보면 int 자기 자신과 object가 출력됩니다.>>> int.mro()[, ] class X: pass 괄호 안에 object를 넣은 것과 같습니다.class X(object): pass 파이썬 3에서는 괄호 안에 object를 넣어도 되고 넣지 않아도 됩니다. 2026. 1. 29. 메서드 오버라이딩 class Person: def greeting(self): print('안녕하세요.') class Student(Person): def greeting(self): super().greeting() # 기반 클래스의 메서드 호출하여 중복을 줄임 print('저는 파이썬 코딩 도장 학생입니다.') james = Student()james.greeting()안녕하세요.저는 파이썬 코딩 도장 학생입니다. Student의 greeting에서 super().greeting()으로 Person의 greeting을 호출했습니다. 즉, 중복되는 기능은 파생 클래스에서 다시 만들지 않고, 기반 클래스의 기능을 사용하면 됩니다. 이처럼 메서드 오버라이딩은 원래 기능을.. 2026. 1. 29. super() 1. super()로 기반 클래스 초기화하기이때는 super()를 사용해서 기반 클래스의 __init__ 메서드를 호출해줍니다. 다음과 같이 super() 뒤에 .(점)을 붙여서 메서드를 호출하는 방식입니다.super().메서드()class Person: def __init__(self): print('Person __init__') self.hello = '안녕하세요.' class Student(Person): def __init__(self): print('Student __init__') super().__init__() # super()로 기반 클래스의 __init__ 메서드 호출 self.scho.. 2026. 1. 29. self class AdvancedList(list): def replace(self, old, new): while old in self: self[self.index(old)] = newx = AdvancedList([1, 2, 3, 1, 2, 3, 1, 2, 3])x.replace(1, 100)print(x) 2026. 1. 29. 이전 1 2 3 4 5 ··· 46 다음