일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BeautifulSoup
- 장고
- 성수동카페
- Django
- 부스트코스
- 포인터
- python3
- 알고리즘
- 자바
- removetooltip
- 강원도속초맛집
- richtext
- 남양주맛집
- c언어문자열
- DOM
- 코딩독학
- Python
- 정렬알고리즘
- 아스키코드
- JavaScript
- pipenv
- 추상클래스
- 컴퓨터과학
- 건대입구맛집
- popupmenubutton
- 상속
- 노마드코더
- 가상환경
- 속초여행
- FLUTTER
- Today
- Total
목록분류 전체보기 (108)
YUYANE
Modules - 기능의집합 - 프로그램에 import 해서 사용 가능 import math print(math.ceil(1.2)) import - 모든 기능을 전부 import 할 필요는 없다. 사용할 것만 import 하는 것이 좋음 from math import ceil, fsum print(ceil()) print(fsum([1,2,3,4,5,6,7])) - import와 동시에 이름을 바꿔줄 수도 있다. from math import fsum as sul_sum print(sul_sum([1,2,3,4,5])) - 다른 클래스에 함수를 정의해주고, 그 클래스를 import 할 수도 있다. calculator.py def plus(a,b): return a+b main.py from calcula..
상속 vs 컴포지션 1) 공통 - 재사용성이 목적 - 많은 경우에 두 가지 모두 사용 가능 2) 성능이 중요한 경우 - 상속 : 개체 생성 시, 메모리가 하나의 덩어리(초기화를 한 번만 하므로) - 컴포지션 : 개체 생성 시, 메모리가 여러 덩어리 - 메모리 상의 차이는 실행 성능에 영향을 미친다. 개체가 여러 메모리로 나뉘어져 있으면 속도가 느려짐 이유 : cpu는 메모리로부터 데이터를 받아와 연산한다. - 상속 모델로 만든 개체 : 개체가 한 번에 캐시 메모리에 들어갈 가능성이 높음 - 컴포지션 모델로 만든 개체 : 개체 내 부품 수 만큼 캐시 메모리로 로딩할 가능성이 높음 - 프로그래밍 언어에 따라 새로운 메모리를 할당하고 해제하는 것에 있어서 특히 느린 것이 있음 - 상속 : 메모리 할당/해제가 ..
클래스 재사용성의 장점과 예외 - 설계/코딩을 다시 할 필요 없음 - 실전에서 100% 적용은 불가(재사용성에 눈이 멀어 잘못된 재사용을 할 수도 있다) - 오히려 유지/보수가 증가할 위험도 - 테스트 시간 절약 - 현실적으로 다시 테스트 하는 경우가 빈번하다 - 새로운 방법으로 부모 클래스를 사용한 경우에 새로운 버그 나타날 수도 있다 - 부모 클래스를 변경한 경우에 테스트가 필요하다 - 관리 비용 절약(코드 중복이 없고, 관련된 코드가 모두 한 파일 안에 있음) - 재사용성과 유지/관리 사이에서 밸런스를 잘 유지하자
매개 변수를 가진 함수를 작성했다. 만약에 사용자가 입력값을 주지 않았다면? 예외를 던지는 방법도 있겠지만, 조금 더 책임감 있는 코드 작성이 필요하다. Solution: default argument 값으로 None을 주자. - 값을 따로 주지 않으면 입력값을 주지 않았을 시에는 실행 자체가 안된다. - None이 아닌 다른 값을 준다면, 예상하지 못하거나 실제와는 전혀 다른 값이 해당 변수의 값으로 잡힐수도 있다. def add_to_dict(a=None,b=None,c=None): if type(a) is dict: if b is not None and c is not None: if b in a: print(f"{b} is already on the dictionary. Won't add.") e..
for in days = ("Mon", "Tue", "Wed", "Thu", "Fri") for x in days: print(x) for x in [1,2,3,4,5]: print(x) for day in days: if day is "Wed": break else: print(day) 여기서 x/day는 반복문이 실행될 때 생성된다.
if-else문 def plus(a,b): if type(b) is str: return None else : return a+b Boolean Operation def age_check(age): print(f"you are {age}") if age 20 and age
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mkvul/btqP9rob6wT/TLVdeIW4llGcTWsY0jIxl0/img.png)
위의 그룹에서 아래 그룹을 도출해낼 수 있다. 이런 경우는 기본적으로 중복이라고 본다. 특별한 이유가 없다면 후에 유지 보수 할 때 문제가 될 수 있으므로 중복된 상태는 지우는 것이 좋다.
function 정의하는 방법 def say_hello(): print("hello") 파이썬에서는 { }으로 함수 구분하지 않고 들여쓰기로 구분 (tab 들여쓰기) 들여쓰기에 해당하는 부분만 함수로 여겨짐 - one tab function 실행 say_hello() function arguments 함수에 data/input을 줄 수도 있다. return은 값을 주고, 함수를 종료한다. def say_hello(who): print("hello",who) say_hello("Yujin") def say_hi(name="anonymous"): print("hi",name) say_hi() positional argument def plus(a,b): return a+b result = plus(2,5) ..