Duck Typing - ‘If it walks like a duck and it quacks like a duck, then it must be a duck’ 해석해보면 ‘오리처럼 걷고, 오리처럼 꽥꽥거리면, 그것은 틀림없이 오리다.’ 라는 뜻입니다. 파이썬과 같은 동적타입의 언어에서 본질적으로 다른클래스라도 객체의 적합성은 객체의 실제 유형이 아니라 특정 메소드와 속성의 존재에 의해 결정되는 것입니다. Parrot 클래스와 Airplane 클래스는 분명 서로 상속되거나 하는 그런 관계는 없습니다만, 내부에 동일한 메소드의 fly()메소드가 있는 것만으로 호출하는 `lift_off(entity)’ 함수에서 fly가 정상적으로 실행됩니다. 마지막 Whale 클래스는 해당 fly() 메소드가 없기 때문에,..
[Stack: 스택] 자료의 입력과 출력을 한 곳(방향)으로 제한한 자료구조. LIFO(last in fist out) 구조로 push(): 값을 입력 pop(): 스택의 마지막 값을 지우고 리턴 함수의 콜스택(함수가 호출되고 종료되는 순서)에 쓰이고 문자열을 역순으로 출력할때, 사칙연산에서 괄호를 결합할때 등에 사용된다. [Queue: 큐] 자료의 입력과 출력을 front, rear 로 제한한 자료구조 FIFO(first in first out) put(): 값을 입력 get(): 큐의 처음 값을 리턴하고 삭제 컴퓨터 버퍼에서 주로 사용. 마구 입력이 되었으나 처리하지 못할때, 버퍼를 만들어 대기시킨다.
다음은 간단한 클래스의 예제이다. 세부 내용을 살펴보자. class Dog: def __init__(self, weight, name): self.weight = weight self.name = name def eat(self, food): self.weight += food def howl(self): print("howl!", self.name) def __repr__(self): return f"name={self.name} weight={self.weight}" d = Dog(10, "baduk") d.eat(5) d.howl() print(d) [네이밍 컨벤션] class 이름은 CamelCase 로 정의한다. class 내부 함수들은 snake_case 로 정의한다. [더블언더스코어] __는..
1. EAFP VS LBYLEAFP - 'It's Easier to Ask Forgiveness than Permission' 의 줄임말 입니다. 허락보다 용서구하는 것이 쉽다.LBYL - 'Look Before You Leap'의 줄임말입니다. 도약하기전에 봐라. 라는 뜻입니다.LBYL 스타일은 어떤 것을 실행하기전에 에러가 날만한 요소들을 조건절로 검사를 하고 수행하는 스타일입니다.EAFP 스타일은 예외처리를 활용하여 검사를 수행하지 않고 일단 실행하고 예외처리를 진행하는 스타일입니다.파이썬은 EAFP 스타일을 권장합니다.PEP-0463 (이문서가 맞는지 모르겠으나.. 검색해본봐로는...)EAFP는 Python에서 표준이며, 철학은 예외에 의해 가능합니다.대신 오류 코드를 사용하는 예외가 없으면 오류..
빌트인된 모듈이나 추가로 pip로 설치한 모듈이나 import 로 많이 참조해서 사용하였다. 하지만 직접 필요한 부분을 모듈화 해서 참조해서 사용해보자 규모있는 프로젝트를 진행하다 보면 다수의 모듈이 필요하다. [네이밍룰] pep8 에 따르면 모듈 이름은 모두 소문자 이다. (bad) snake_case(bad) CamelCase(good) onlysmall calculator.pydef add(a, b): return a+b def sub(a, b): return a-b def division(a, b): return a/b def multiply(a, b): return a*b위의 계산기 모듈을 만들었다. 이것을 임포트 해서 사용해 보자. import calculator if __name__ == '..
[doctest] 고품질의 소프트웨어를 개발하는 한 가지 접근법은 개발되는 각 함수에 대한 테스트를 작성하고, 그것들을 개발 프로세스 중에 자주 실행하는 것입니다.doctest 모듈은 모듈을 훑어보고 프로그램의 독스트링들에 내장된 테스트들을 검사하는 도구를 제공합니다. 테스트 만들기는 평범한 호출을 그 결과와 함께 독스트링으로 복사해서 붙여넣기를 하는 수준으로 간단해집니다. 사용자에게 예제를 함께 제공해서 설명서를 개선하고, doctest 모듈이 설명서에서 코드가 여전히 사실인지 확인하도록 합니다.>>> print(average([21, 30, 70])) 의 결과값이 40.0 이 아니면 오류 메세지를 출력한다.결과값 40.0 은 맨 마지막줄에 와야 한다. >>> 뒤에 인풋에 대한 코드를 삽입할수 있다. ..
Presentation Assistant Plugin을 설치하여 사용하는 걸 추천! [Editing] Ctrl + Space Basic code completion (the name of any class,method or variable) Ctrl + Shift + Space Smart code completion (filters the list of methodsand variables by expected type) Ctrl + Shift + Enter Complete statement Ctrl + P 함수호출시 인수 정보 확인 (within method call arguments) Ctrl + Q 코드에 대한 문서창 팝업 Shift + F1 코드에 대한 문서 인터넷 브라우저로 팝업 Ctrl + m..
euc-kr 인코딩으로 한글을 문제없이 쓸수 있다. decorator 로 예외 처리를 하였다. def handler(func): def wrapper(*args, **kwargs): try: return func(*args, **kwargs) except FileNotFoundError as e: print(e) except Exception as e: print(e) return wrapper @handler def write(path, data, encoding='euc-kr'): with open(path, 'w', encoding=encoding) as f: f.writelines("\n".join([",".join(list(map(str, row))) for row in data])) @hand..
- Total
- Today
- Yesterday
- 엑셀 비교
- 파이썬 입문
- wsgi
- admin.py
- GIT
- django chatbot
- 면접정답
- virtualenv
- 파이썬 독학
- Tistory
- Python
- 문서 비교
- gitignore
- 장고 플러스친구 자동응답
- PuTTYGen
- 파이썬
- 플러스친구 자동응답
- 모바일 테마 적용
- chatbot
- django
- 면접답변
- 장고 카톡 자동응답
- 이미지 비교
- 장고
- pycrypto
- 문과 코딩
- gitlab
- 모바일 스킨 적용
- 파이썬 프로그래밍
- 파이썬 강좌
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |