2019-2학기 전공(학업)/programming language김명호교수님

python다운 코딩

JaeHyunShin 2020. 1. 20. 03:54

Web쪽에서 Django 프레임워크에서도 사용되고, 수많은 데이터 분석 관련 툴이 python으로 작성되어 있다. 

https://www.python.org/dev/peps/pep-0008/ 

 

PEP 8 -- Style Guide for Python Code

The official home of the Python Programming Language

www.python.org

위 가이드에 나오는 PEP 8 스타일 가이드를 따르는 것이 좋다. 

yield 키워드 

제너레이터(Generators)

제너레이터(generators)는 이터레이터(iterators)와 혼동하기 쉬운 개념입니다.

iterator를 쉽게 만들 수 있는 문법으로, 코루틴의 한 형태라고 생각하면 됩니다.

하지만 제너레이터는 모든 값을 메모리에 담고 있지 않고 그때그때 값을 생성(generator)해서 반환하기 때문에 제너레이터를 사용할 때에는 한 번에 한 개의 값만 순환(iterate) 할 수 있습니다:

**호 교수님 PL 강의자료

 

python은 dynamic typing, 동적 타이핑 또한 지원한다. 

동적으로 속성을 바인딩하는 과정은 obj객체의 타입에 영향받지 않으며, 오로지 해당 객체가 attr에 해당하는 속성을 가졌는지만 검사한다. 위의 str()함수를 예로 들면, str()함수는 전달된 인수의 __str__()속성을 리턴한다.이러한 작동방식은 ‘오리처럼 울고 걸으면 그것은 오리이다.’라는 말에서 유래한 덕 타이핑(duck typing)이라고 한다. 덕 타이핑은 동적 타이핑의 한 종류이며, 객체가 가진 변수와 메서드가 해당 객체의 타입을 결정함을 의미한다.