반응형

고급 파이썬 9

파이써닉한 함수 만들기

함수 또한 파이썬스럽게 만들면 좋다. 함수 작성은 프로그래밍의 가장 중요한 부분 중 하나이기 때문에 규칙을 잘 준수하고, 사용하기 쉬운 함수를 만드는 것이 중요하다. . . 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 함수명 함수는 특정 동작을 수행하기 때문에 대부분 '동사'가 들어간다. 명사도 대부분 들어가지만, 특정 모듈에서는 동사만 존재하기도 한다. webbrowser 모듈에서 open() 함수는 당연히 웹브라우저를 열어주겠다는 의미이다. 짧고 단순한 이름보단 길지만 무슨 기능인지 알 수 있는 함수명이 좋다. 당연히 open, min, random, list 등 내장 함수와 중복되는 함수명을 사용하는건 옳지 않다. 함수 크기의 트래이드 오프 함수는 가능한 짧으면 ..

파이썬 내부 동작을 알아보자

파이썬 기초 문법을 다 익혔다면 파이썬 내부 동작하는 구조와 파이썬만의 독특한 특징을 이해할 필요가 있다. . . 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 256 is 256 == True but 257 is 257 == False 아주 기이한 현상이다. 파이썬은 value 비교를 == 연산자를 통해, id 비교를 is 연산자를 통해 한다. 물론 id()를 통해 value 비교로 == 연산자를 활용하면 id 비교가 가능하다. 파이썬은 모든 프로그램이 시작할 때 자주 쓰이는 정수 리터럴 객체를 미리 생성한다. -5 부터 256까지가 그 범위이다. CPython 인터프린터가 자동으로 -5에서 256까지의 객체를 미리 생성하고 시작한다. 그래서 다음과 같은 결과가 나오기도 한다. >>..

파이썬 용어/개념 정리부터 확실하게 #2

1편에서 가비지 컬렉션, 리터럴, 객체, 아이디 등에 대해 알아보았다. https://tech-diary.tistory.com/55 파이썬 용어/개념 정리부터 확실하게 #1 모든건 기초가 튼튼해야 한다. 개발자들끼리 의사소통할 때 용어에 대한 이해가 부족하면 말릴수밖에 없다 누군가가 물어볼 때, 좀 안다 싶은데 용어 설명을 못하면 난감하기도 하다 용어에 대 tech-diary.tistory.com 모든건 기초가 튼튼해야 한다. 개발자들끼리 의사소통할 때 용어에 대한 이해가 부족하면 말릴수밖에 없다 누군가가 물어볼 때, 좀 안다 싶은데 용어 설명을 못하면 난감하기도 하다 용어에 대 tech-diary.tistory.com](https://tech-diary.tistory.com/55) 2편도 더 알아가보자..

파이썬 용어/개념 정리부터 확실하게 #1

모든건 기초가 튼튼해야 한다. 개발자들끼리 의사소통할 때 용어에 대한 이해가 부족하면 말릴수밖에 없다 누군가가 물어볼 때, 좀 안다 싶은데 용어 설명을 못하면 난감하기도 하다 용어에 대한 확실한 정리, 그리고 개념에 대한 확실한 이해가 필요하다 이제 알아보자 . 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 이번 포스팅에서는 가비지 컬렉션, 리터럴, 키워드, 객체, 아이디에 대해 다룹니다. 가비지 컬렉션 (Garbage Collection) 유명 유니콘 기업에서 면접을 볼 때 들어왔던 기술 질문중 하나다. 사실 그 전까진 이런 개념이 있는 줄도 몰랐다. 가비지 컬렉션 : 파이썬 내부에서 메모리 할당과 해제를 자동으로 해주는 메모리 관리 기법 초기 프로그래밍에서는 메모리를 프로그래머가 ..

파이썬다운 코드란? (파이써닉하게 코딩하기)

수많은 프로그래밍 언어는 저마다 장단점이 있다. 파이썬은 가독성이 쉽고 뭐 내장모듈이 많고 어쩌고... 이렇게들 많이 말하곤 한다. 각 프로그래밍 언어의 강점을 잘 살리고, 약점을 커버할 수 있도록 설계하는 것이 바람직하다고 생각한다. 그렇다면, 파이썬답게(파이써닉하게) 코드를 작성하는 방법은 무엇일까? . 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 파이썬의 선 (Zen of Python) 파이썬 언어 설계와 프로그램을 위한 20가지 지침이라고 한다. 아래처럼 import this 를 불러오면 볼 수 있다. 이중 몇 가지 재미난 부분에 대해 알아보자 아름다운 것이 흉한거보다 낫다 당연한 사실이다. 파이썬은 중괄호가 사라지고 간결하게 코드를 작성하게 거의 강제하면서, 가독성을 높이고..

Python 에러 예방하기 (코드 악취 제거하기)

프로그래밍을 하다보면, 다양한 에러를 자주 만나게 되는데 처음에는 이게 문제인지도 모르고 짜게되는 경우가 빈번하게 일어난다. 하지만 경험이 쌓일수록, 문제가 자주 발생하던 코드 패턴에 대해서 본인 스스로도 예방하려고 하게 될텐데 초심자를 위해, 그리고 파이썬을 사용하는 사람일지라도 습관을 들이기 위해 이번 장을 살펴보자 해당 포스팅은 [클린코드, 이제는 파이썬이다] 저서의 일부입니다. 코드 악취 (Code Smell) - 잠재적인 버그를 암시하는 코드 패턴 - 말그대로 코드에서 악취가 풍겨 이건 분명 에러날 가능성이 높겠다는 생각이 드는 그러한 것들그렇다면 지금부터 코드 악취의 종류에 대해 알아보고, 예방하는 방법이 있는지 살펴보자 중복 코드 말 그대로, 복붙해서 사용한 비슷한 동작을 수행하는 코드들 이..

[파이썬 스킬업 #3] slicing과 key parameter를 활용하자

파이썬 코딩의 기술 정리 #3 출판사 Github >> https://github.com/gilbutITbook/080235 저자 Github >> https://github.com/bslatkin/effectivepython 1. 시퀀스 슬라이싱(sequence slicing)을 활용합시다. - slicing이란? 리스트에서 특정 범위를 지정하여 새로운 리스트를 생성하는 것 #기본 사용 방법 a = list[start:end] #count만큼 건너뛰어 가져오고 싶을 때 b = list[start:end:count] #list 복사 #list는 mutable이기 때문에, 별도로 복사를 해주어야 합니다. #리스트 컴프리헨션으로 복사가 가능하고 copy_list = [x for x in list] #슬라이싱..

[파이썬 스킬업 #2] unpacking, enumerate, zip 활용하자

파이썬 코딩의 기술 정리 #2 출판사 Github >> https://github.com/gilbutITbook/080235 저자 Github >> https://github.com/bslatkin/effectivepython 1. 인덱싱 indexing 대신, 언패킹 Unpacking을 사용합니다. - 파이썬 언패킹이란? 여러 객체를 포함하고 있는 하나의 객체를 풀어주는 행위 반대 개념으로 당연하 패킹 packing이 있겠죠 (=여러 객체를 하나로 묶어주는 행위) #packing packing_tuple = (a, b, c) packing_list = [a, b, c, d] #unpacking a, b, c = packing_tuple a, _, c, d = packing_list #언패킹과 동시에 b..

[파이썬 스킬업 #1] PEP8 스타일 가이드 핵심 정리

파이썬 코딩의 기술 정리 #1 출판사 Github >> https://github.com/gilbutITbook/080235 저자 Github >> https://github.com/bslatkin/effectivepython PEP8 스타일 가이드를 따릅시다 ! 파이썬은 코딩 스타일을 친절히 설명해주고 있습니다. 자기 멋대로 코딩해도 코드는 잘 돌아갑니다 하지만.... 다음과 같은 이유로 스타일 가이드를 지키는 것을 권장합니다. 스타일 가이드를 준수하고, 알고 있다면 어떤 코드든 접근하기 쉬워진다. 가독성이 높아지기 때문에 쉽게 이해하고 분석할 수 있다. 다른 프로그래머 혹은 오픈 소스를 활용할 때, 협력을 용이하게 해준다. 따라서, 파이썬을 무기로 사용하고자 하는 개발자라면, 언젠가 보게될 문서라고 ..