python37 파이썬 특수한 이름의 메서드 __이름__() 형태의 메서드들은 특수한 상황에 자동으로 호출되도록 만들어졌다. 파이썬이 클래스를 사용할 때 제공해주는 보조 기능이다. 1. __str__ str() 함수의 매개변수로 객체를 넣으면 호출되는 메서드이다. 주로 객체를 문자열로 변환할 때 사용한다. class Student: def __init__(self, name, korean, math, english, science): self.name = name self.korean = korean self.math = math self.english = english self.science = science def get_sum(self): return self.korean + self.math + self.english + self.scien.. 2023. 5. 10. 파이썬 isinstance 함수 객체가 어떤 클래스로부터 만들어 졌는지 확인할 수 있는 함수이다. 첫 번째 매개변수로는 객체를 넣고 두 번째 매개변수에 클래스를 입력한다. 만약 객체가 해당 클래스를 기반으로 만들어져있으면 True, 관계가 없으면 False 를 반환한다. 작성 방법 isinstance(객체, 클래스) class Student: def __init__(self): pass student = Student() isinstance(student, Student) # 결과값 # True student 는 Studnet 클래스를 기반으로 만들었으므로 True 를 반환하게 된다. 리스트와 같이 여러종류의 객체가 함께 들어있는 경우 인스턴스들을 구분하여 속성과 기능을 사용할 때 주로 사용한다. class Student: def st.. 2023. 5. 9. 파이썬 소멸자 인스턴스가 소멸될 때 자동으로 호출되는 메서드이다. class Sample: def __del__(self): print("인스턴스가 소멸됩니다") sample = Sample() del sample # 결과값 # 인스턴스가 소멸됩니다. 2023. 5. 9. 파이썬 모듈 생성 라이브러리와 프레임워크 라이브러리(library) : 정상적인 제어를 하는 모듈을 라이브러리 라고 한다. 프레임워크(framework) : 제어의 역전이 발생하는 모듈을 프레임워크 라고 한다. 제어의 역전(IoC : Inversion of Control) 라이브러리 : 정상적인 제어 라이브러리는 모듈의 기능을 개발자가 직접 호출하는 것이다. from math import sin, cos, tan, floor, ceil print(sin(1)) print(cos(1)) print(tan(1)) print(floor(2.5)) print(ceil(2.5)) 프레임 워크 : 제어의 역전 직접적으로 무언가를 진행하는 코드는 따로 없다. Flask 모듈이 제공하는 명령어를 실행하면 코드를 직접 실행하지 않아도 F.. 2023. 5. 9. 파이썬 데코레이터 함수를 수정하지 않은 상태에서 추가 기능을 구현할 때 사용한다. def hello(): print("hello 함수 시작") print("hello") print("hello 함수 끝") def world(): print("world 함수 시작") print("world") print("world 함수 끝") hello() # 결과값 # hello 함수 시작 # hello # hello 함수 끝 world() # 결과값 # world 함수 시작 # world # world 함수 끝 위 코드와 같이 "(함수명) 함수시작" 이라는 문자열과 "(함수명) 함수 끝" 이라는 문자열을 출력하고 싶을 때 일일히 코드를 작성하는 것보다 데코레이터를 사용하면 더욱 쉽게 사용할 수 있고 코드의 재사용이 가능하다는 장점이 .. 2023. 5. 9. 파이썬 제너레이터 제너레이터는 이터레이터를 생성해 주는 함수이다. 제너레이터와 이터레이터의 차이첨 이터레이터 : 클래스에 __iter__, __next__, __getitem__ 메서드를 구현해야 한다. 제너레이터 : yield 키워드를 사용한다. 제너레이터 생성이 더 간편한 편이다. 제너레이터는 발생자 라고도 부른다. 제너레이터와 yield 함수에서 yield를 사용하면 함수가 제너레이터가 되며 yield에는 값을 지정해서 사용한다. 표현 방법 yield 값 yield 키워드를 사용하면 해당 함수와는 달리 함수를 호출해도 함수 내부의 코드가 실행되지 않는다. def test(): print("함수가 호출되었습니다.") yield "test" print("A") print(test()) # 결과값 # A # print(".. 2023. 5. 9. 파이썬 람다함수 람다함수는 def 없이 사용하는 익명함수를 말한다. 보통 1회용 함수를 작성할 때 많이 사용한다. 람다함수는 함수를 간편하게 작성할 수 있기 때문에 다른 함수의 인수를 넣을 때 주로 사용하고, 람다는 식 형태로 되어 있기 때문에 람다 표현식(lambda expression)이라고도 부른다. 람다 표현 방식 lambda 매개변수들 : 식 람다식을 사용하지 않은 코드 def plus_ten(x): return x + 10 plus_ten(1) # 결과값 # 11 람다식을 사용한 코드 lambda x : x + 10 람다함수 호출하기 plus_ten = lambda x : x + 10 plus_ten(1) # 결과값 # 11 (lambda x : x + 10)(1) # 결과값 # 11 사실 람다함수는 호출하려.. 2023. 5. 9. 파이썬 재귀함수 재귀 호출 함수 안에서 자기 자신을 호출하는 방식이다. 알고리즘을 구현할 때 반복문으로 구현한 코드보다 재귀호출로 구현한 코드가 더 직관적이고 이해하기 쉬운 경우가 종종 있다. 재귀호출 사용 def hello(): print("Hello, World!") hello() # 결과값 # Hello World! # Hello World! # Hello World! # ... 1000번 무한 반복 재귀호출이 종료되지 않으면 최대 재귀 깊이를 초과할 때 에러 발생 파이썬의 최대 재귀 깊이(maximum recursion depth) : 1000 재귀호출에 종료 조건 만들기 def hello(count): if count == 0: # 종료 조건, count가 0일 때 종료 return print("Hello Wo.. 2023. 5. 9. 파이썬 이터레이터 값을 차례대로 꺼낼 수 있는 객체들을 이터레이터라고 한다. range는 숫자를 모두 만들어 내는것이 아니라 숫자를 차례대로 꺼낼 수 있는 이터레이터를 만들어 내는 것이다. 반복할 때마다 이터레이터에서 숫자를 하나씩 꺼내서 반복문을 수행하는것 이라고 볼 수 있다. 숫자를 미리 만들게되면 메모리를 너무 많이 사용하기 때문에 성능에 지장을 줄 수 있다. 따라서 이터레이터만 생성하고 값이 필요한 시점에 값을 만드는 방식을 사용한다. 데이터의 생성을 뒤로 미루는 방식을 지역 평가(lazy evaluation)라고 한다. 참고로 이터레이터는 반복자 라고 부르기도 한다. 반복 가능 객체 반복 가능 객체는 요소가 여러개 들어있고 한번에 하나씩 꺼낼 수 있는 객체를 말한다. 반복 가능 객체에는 문자열, 리스트, 딕셔너리.. 2023. 5. 9. 이전 1 2 3 4 5 다음