본문 바로가기

파이썬6

# 0. Python 가상환경 세팅 (feat. Anaconda) Anaconda 설치 가장 먼저 해야할 것은 Anaconda를 설치하는 것이다. Anaconda를 통해 우리는 가상환경을 구축할 수 있다. 굳이 가상환경을 사용하는 이유에 대해 간단히 언급하자면, 상황별로 사용해야 하는 모듈들 혹은 버전이 상이할 것이다. 이를 위해 용도별로 적합한 가상환경을 구축한다. https://www.anaconda.com/ Anaconda | The World's Most Popular Data Science Platform Anaconda is the birthplace of Python data science. We are a movement of data scientists, data-driven enterprises, and open source communities. w.. 2022. 1. 25.
# 14. dictionary setdefault, defaultdict 그동안 여러모로 일이 많아서 포스트가 미뤄졌습니다.. (--) (__) 그동안 새로 알게된 사실들을 차근차근 정리하고자 한다.. 우선 딕셔너리에 기본값을 설정하는 깔끔한 방법부터 정리하겠다! 이번 포스트에서 다룰 내용은 크게 두 가지이다. 첫 번째는 setdefault() 메소드를 활용하여 단일 키값에 대한 기본값 설정, 두 번째는 defaultdict 컬렉션을 활용하여 대입되는 키값에 대한 기본값 설정이다. 바로 코드로 확인해보겠다. # setdefault 를 알기 전, 각 키별로 기본값을 설정하는 방법 def set_default_value(): d = dict() keys = [1, 2, 3, 4, 5] for k in keys: d[k] = list() print(d) 만약 각 키값에 리스트를 기.. 2021. 5. 28.
#6. property 데코레이터 작업을 하던 도중 처음보는 데코레이터를 발견했다. 보통 우리는 객체의 필드를 직접 접근하는 것을 방지하기 위해 해당 필드를 protected나 private 접근제한자를 사용하여 (물론 파이썬에는 접근제한자가 없어 언더바(_) 명명법을 통해 설정하지만..) getter와 setter를 사용하여 접근할 수 있도록 캡슐화(Encapsulation)을 한다. 이러한 과정을 간소화 시켜주는 것이 프로퍼티의 역할이다. -> 특정 인스턴스(객체)의 인스턴스 필드를 직접 접근하는 것을 방지하기 위해 언더바(_)가 붙여진 "접근이 제한된 필드"를 접근하기 위한 역할이다. @property만 정의하면 해당 필드에 대해서는 get만 가능하고, @property와 @.setter까지 정의하면 get, set이 가능해진다. .. 2021. 2. 2.
#5. 덕 타이핑 (Duck Typing) 필자는 스트래티지 패턴을 공부하던 도중 인터페이스를 사용하는 예제를 보았다. 그러자 갑자기 의구심이 들었다. 파이썬에는 인터페이스가 없나?? 그래서 바로 구글링을 했다. 그리고 다음과 같은 답변을 보았다. 파이썬이 다중 상속이 가능한 것은 알고있었지만 덕 타이핑? 이라는 말은 처음 들어봤다. 그래서 바로 또 서칭서칭! Duck Typing - 'If it walks like a duck and it quacks like a duck, then it must be a duck' 해석해보면 '오리처럼 걷고, 오리처럼 꽥꽥거리면, 그것은 틀림없이 오리다.' 라는 뜻입니다. 그렇다. 필자는 오리를 매우 좋아한다. 그게 중요한게 아니라 파이썬은 객체의 타입보다 행위를 더 중요하게 여긴다는 의미이다. 어떤 의미인지.. 2020. 12. 29.
#4. 추상 클래스 (Abstract Class) 디자인 패턴을 공부하면서 구체화 되어 있는 것 보다 고수준이든 저수준이든 추상화된 것에 의존하라는 원칙을 알게 되었다. 그러나 대부분의 디자인 패턴 포스트를 확인해보면 자바로 설명이 자주 쓰여있어서 필자는 파이썬에 추상 클래스가 없는지 궁금했다. 그리고 오늘도 열심히 서칭과 뜨거운 밤을 보내고 있다. 그리고 파이썬에도 추상 클래스가 있다는 사실!.. 그러나 기본적으로 제공되는 것은 아니다. 역시나 import를 해야한다는 사실.. 그래도 있다는 것에 감사하고 열심히 포스팅을 해보려 한다. 일단 필자가 생각하는 추상 클래스의 필요성에 대해 말을 해보자면.. 1. 특정 개념을 추상화 및 일반화하는데에 유리하고, 2. 추상 클래스에 속해 있는 추상 메소드는 반드시 구현(오버라이딩)을 해야하므로 만약에 무조건 .. 2020. 12. 28.
#2. 접근제한자 (Access Modifier) 오늘은 파이썬의 접근제한자에 대해 다뤄보겠다. 파이썬을 사용하며 익숙해질때쯔음.. 무언가 이상한 점을 느꼈다. 왜 파이썬에서는 public, protected, private이라는 키워드를 본적이 없지? 궁금해진 필자는 쏜살같이 구글링을 하며 찾은 내용들을 여기다가 정리한다. 일단 결론부터 얘기하면 파이썬에 접근제한자에 대한 키워드는 없다. 그럼 어떡함? 이라는 의문이 들것이다. 정답은 명명규칙에 있었다. 멤버(함수, 변수)명 앞에 _를 한 번 쓰면 protected 멤버(함수, 변수)명 앞에 _를 두 번 쓰면 private 주의할 점은 멤버명 뒤에 _를 두 번 쓰면 다시 public이 된다. public member, member__, _member__, __member__ protected _memb.. 2020. 12. 14.