Makefile 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 .PHONY: build start stop test clean init_mongo # Image configuration IMAGE_NAME = session_2-python-app DEFAULT_TAG = latest # =========================== # Export Python dependencies # =========================== _requirements: @echo "==============================================" @echo "Exporting Python dependencies to requirements.
Introduction 일반적으로 클래스 혹은 패키지 안의 함수를 사용하려면 다음과 같이 사용할 수 있다.
1 2 3 import numpy as np arr = np.array([1]) # numpy 페키지 안의 array() 함수 호출 getattr(object, "NAME")이라는 함수는 object 내부의 name이라는 멤버를 반환한다. numpy 패키지에서 array라는 이름의 함수를 사용하고 싶다면 패키지 이름 뒤에 .을 사용해서 함수를 호출할 수 있다. getattr()는 이와 완전히 동일하게 동작한다.
즉,getattr(np, "array")([1]) == np.array([1]).
getattr() 활용 두개가 동일하다면 왜 굳이 사용하는 것일까?
Introduction Property는 객체의 속성을 제어할 때 유용하게 사용되는 기능이며 데이터 캡슐화를 위한 방법이다.
직접 접근 사람의 이름, 나이, 연봉 데이터를 가진 클래스를 만들어본다. 밑의 Person 클래스는 name, age, salary 3개의 필드로 이루어져 있다.
1 2 3 4 5 class Persion(): def __init__(self, name, age, salary): self._name = name self._age = age self._salary = salary Person 클래스의 인스턴스를 생성한 후, 현재 필드 값을 읽거나 새로운 필드 값을 쓰는 것은 매우 자유롭다.(하지만 이는 지양해야 한다.
Introduction 어떤 언어로 코딩을 하던 단위 테스트는 신뢰할 수 있는 애플리케이션을 개발하기 위해서 필수적으로 습득해야 하는 기술이다. 파이썬에서는 내장 모듈인 unittest를 통해서 다른 라이브러리 없이 비교적 간단하게 단위 테스트를 수행할 수 있다.
unittest 모듈 unittest 모듈은 Java의 JUnit, Javascript의 Jest 또는 Mocha와 같은 단위 테스트 프레임워크이다. 다만 다른 언어와 달리 기본적으로 언어에 내장되어 있기에 파이써만 설치가 되어 있다면 바로 모듈을 불러와 사용할 수 있다.
TestCase 클래스 unittest 모듈의 TestCase 클래스는 단위 테스트에 필요한 다양한 유틸리티 메소드를 제공한다.
Assert(가정 설정문) assert는 뒤의 조건이 True가 아니면 AssertError를 발생시킨다.
1 2 3 4 5 6 7 a = 3 assert a == 2 #결과 Traceback (most recent call last): File "<stdin>", line 1, in <module> AssertionError 왜 assert가 필요할까? 어떤 함수는 성능을 높이기 위해 반드시 정수만을 입력받아 처리하도록 만들 수 있다. 이런 함수를 만들기 위해서는 반드시 함수에 정수만 들어오는지 확인할 필요가 있다. 이를 위해 if문을 사용할 수도 있고 에외 처리를 사용할 수도 있지만 가정 설정문을 사용하는 방법도 있다.