해시 해시(hash)란 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑(mapping)한 값이다. 중국어로는 하시(哈希, 합희, hā xī)라고 한다. 이를 이용해 특정한 배열의 인덱스나 위치나 위치를 입력하고자 하는 데이터의 값을 이용해 저장하거나 찾을 수 있다. 기존에 사용했던 자료 구조들은 탐색이나 삽입에 선형시간이 걸리기도 했던것에 비해, 해시를 이용하면 즉시 저장하거나 찾고자 하는 위치를 참조할 수 있으므로 더욱 빠른 속도로 처리할 수 있다. 해시값이라고도 한다. '해쉬'가 아니라 '해시'가 올바른 표기법이다. 해시는 암호학에 있어서 매우 중요한 요소이며, 블록체인(blockchain)을 구현하기 위한 핵심 기술이다. 무결성 해시는 특정한 데이터를 이를 상징하는 더 짧은 길이의 데..
class A: def __init__(self, *args, **kwargs): self.a = kwargs["a"] def __str__(self): return f"{self.__dict__}" class B(A): def __init__(self, *args, **kwargs): self.b = kwargs["b"] super().__init__(*args, **kwargs) class C(B): def __init__(self, *args, **kwargs): self.c = kwargs["c"] super().__init__(*args, **kwargs) c = C(a=1, b=2, c=3) print(c) 부모가 가지고 있는 파라미터에 계속 추가해가는 형태
[인덱스 넘버링] 보통 프로그래밍 언어에서는 자료구조로 사상되는 어떤 집합을 순회하면서 그 집합에서 꺼내온 원소를 가지고 정해진 연산을 차례대로 수행하기 위한 기능이 있다. 소ㅜ이 반복문(for) 이라고 부르는 표현. 반복문을 쓸 때에는 집합의 어디서부터 어디까지 훓을 것인가 하는 인덱스의 범위(range)를 지정하는데 여기서 컴퓨터 과학자들이 즐겨 쓰는 관습이 하나 있다. 이것은 이제는 프로그래밍 언어를 처음 배우기 시작한 사람들에게 조차 익숙할 만큼 대중적인 것으로 자리 잡고 있다. 그것은 두가지로 구성된다. 1. Half-open interval: 인덱스는 시작 수는 포함하고 마지막 수는 제외한다.2. Zero-based numbering: 첫 번째 인덱스는 0부터 시작한다. 예를 들어 10번 박복..
파이썬에서는 클래스 캡슐화에 필요한 접근지정자를 잘 안쓰는 편이다. 어떤 부분에서는 public 을 권장하는 느낌도 든다. public 이 훨씬 편하기 때문이다. (예를들어 시작은 그냥 public 변수를 사용하게 하다가 먼가 제약이 필요할 때 쯤이면 아래 공부할 @property 등으로 처리한다 ) 제약보다는 자유도/책임감을 높히는 방향의 언어인 파이썬 답다. 먼저 말해두는데 파이썬에서 접근지정자는 없다. 즉 아래와 같이 코딩해도 에러가 안난다는 뜻이다 java 의 get, set 을 아래처럼 표현할 수 있다. class User: def __init__(self): self._color = None @property def color(self): return self._color @color.sett..
[range] range 라는 것은 파이썬에서 연속된 숫자를 얻기 위해서 사용된다. r = range(10) print(r[0], r[1], r[-1])r 의 타입은 range 이고 인덱스를 통해서 접근이 가능하다. range(10) 이르는 뜻은 0~9까지 숫자를 가지고 있다는 뜻이다. r = range(5, 10) print(r[0], r[1], r[-1])range(5, 10) 이라고 하면 5는 start 가 되서 포함된다. 즉 5부터 라는 뜻이고 10은 stop 이라서 포함이 안되고 9 까지 이다. r = range(1, 10, 2) print(r[0], r[1], r[-1])이번에는 range 의 인자가 3개가 되었다. 첫번째 부터 start, stop, step 인데 step 은 숫자의 간격이 ..
클래스의 속성(변수, 함수)를 확인, 값을 얻거나 수정할 필요가 있다. 이런 기능을 제공하는 built in 함수들을 알아보자 class Custom: a = 1 def b(self): pass 이런 클래스가 있다고 하고 hasattr(Custom, 'b')b 라는 어트리뷰트가 있는지 여부를 확인할 수 있다. getattr(Custom, 'a')a 의 값을 얻는다. setattr(Custom, 'a', 9) a 의 값을 9로 수정한다. 함수는 일급객체로 취급 되므로 b 도 다른 함수로 바꿀수 있다. 단 staticmethod, classmethod 가 아니라면 바꿀 함수의 맨앞의 인자에 self 를 두는걸 잊지 말자 클래스 함수에서 데코레이터를 내부에 인자에서도 마찬가지다.
파이썬에서는 로그 출력을 위한 logging 모듈을 제공합니다. 아주 간단히 사용할 수 있으며 print 함수등을 콘솔에 출력하는 것보다 효율 적입니다. [로그레벨] 파이썬에서는 안드로이드와 거의 동일한 로그 레벨을 제공합니다. DEBUGINFOWARNINGERRORCRITICAL [간단한 logging 모듈 사용 예제]import logging as log log.basicConfig(filename='./log.txt', level=log.DEBUG) if __name__ == '__main__': log.debug('debug') log.info('info') log.warning('warning') log.error('error') log.critical('critical')basicConfig ..
- Total
- Today
- Yesterday
- wsgi
- 면접답변
- 파이썬 입문
- 파이썬 프로그래밍
- admin.py
- 장고 카톡 자동응답
- gitignore
- PuTTYGen
- 이미지 비교
- chatbot
- 모바일 테마 적용
- 엑셀 비교
- 장고
- 문과 코딩
- GIT
- Tistory
- Python
- 문서 비교
- 파이썬 독학
- 장고 플러스친구 자동응답
- 플러스친구 자동응답
- gitlab
- virtualenv
- 모바일 스킨 적용
- 파이썬
- 면접정답
- django chatbot
- 파이썬 강좌
- pycrypto
- django
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |