일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Spring
- AWS
- classproperty
- DB
- github
- TypeError: 'property' object is not iterable
- docker-compose
- github skyline
- depends_on
- python
- python all testcode
- 우아한테크코스 2차
- depends
- METACLASS
- 프로그래머스
- Django
- S3
- classmethod
- OperationalError
- javascript
- 재귀함수가 뭔가요
- springboot 3.0.0
- MySQL server on 'db' (115)
- EC2
- 갓재석
- docker
- 코딩테스트
- 2차 코딩테스트
- 우아한 테크코스 2차 합격
- AWS S3
목록python (13)
hanbin.dev
메타클래스에 대해 알아보기 이전에 파이썬의 데이터 모델에 대한 이해가 필요하다. 파이썬에서 모든 것은 데이터를 추상화 한 객체로 이루어져 있다. 또한, 파이썬의 객체는 아이덴티티, 값, 타입을 가지고 있다. 아이덴티티 (id) id() 함수를 통해 얻을 수 있으며 객체의 수명동안 유일하고 불변함이 보장되는 정수다. 값 (value) 객체의 타입에 따라 불변할 수 있고 가변할 수도 있다. ex)tuple : 불변, list : 가변 타입 (type) 객체가 지원하는 연산들과 그 타입의 객체가 가질 수 있는 값(ex) int : 1, list : [1,2])들을 통해 객체의 특성을 정의한다. 객체의 타입은 type()을 통해 얻을 수 있으며, 불변하다. 여기서 말한 타입과 같이 파이썬의 모든 객체들은 어떠한..
import peewee class MySQLModel(peewee.Model): @property @classmethod def unique_fields(cls) -> list: for field_name in cls._meta.fields.keys(): field = getattr(cls, field_name) if field.unique == True or field.primary_key == True: yield field peewee 모델의 unique한 field의 이름을 iterable한 객체로 반환하는 property 함수를 만들었다. key in [field.name for field in MySQLModel.unique_fields] 그런데 위와 같이 사용 할 때 TypeError: &..
하위 디렉토리의 모든 테스트를 실행하고 싶을 때가 있다. 그럴때는 $ python -m unittest discover 를 입력하면 하위 디렉토리의 모든 테스트를 실행한다. (기본적으로 "test*.py" 포맷의 파일을 찾아 실행한다.) $ python -m unittest discover F. ====================================================================== FAIL: test_failure (test2.HelloTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\workspace..
문제 풀이 코드 def solution(board, moves): answer = 0 result_stack = [] for move in moves: for i, column in enumerate(board): if column[move - 1] != 0: if len(result_stack) > 0: if (recent := result_stack.pop()) == column[move - 1]: #1 answer += 2 board[i][move - 1] = 0 break else: result_stack.append(recent) result_stack.append(column[move - 1]) board[i][move - 1] = 0 break return answer #1 왈러스 연산자를 ..
문제 풀이 코드 def solution(a, b): return sum([x*y for x,y in zip(a, b)]) 졸리고 머리아파서 그냥 1단계 풀었다.
아이디어 DFS 문제이다. 예를 들어numbers : [ 1, 1, 1 ],target : 1이 들어왔다면 아래와 같은 이진 트리 구조를 갖는다. 노드의 종점에서 target 값과 비교해 같다면 answer에 +1을 해주는 것이다. 문제 풀이 코드 def solution(numbers, target): answer = 0 def dfs(current_total, current_index, sign): # dfs(0,0,1) nonlocal answer current_total += numbers[current_index] * sign if len(numbers)
네임스페이스란? 네임스페이스란 프로그래밍 언어에서 특정한 객체를 이름에 따라 구분할 수 있는 공간을 의미한다. my_string = "asdf" my_integer = 12 my_list = [1,2,3] my_list2 = my_list 위 예시에서는 my_string이 "asdf"객체를 가리키고 있다. 위와 같이 이름과 객체를 연결한 것을네임스페이스 라고 한다. 왜 필요한데? 프로그래밍을 하다보면 모든 변수와 함수명을 겹치지 않도록 하는 것은 불가능 하다. 그렇기 때문에 특정한 이름의 변수 혹은 함수가 통용될 수 있는 범위를 제한하기 위해 네임스페이스가 등장한 것이다. 아래의 코드를 보자 class TestA: a = 1 class TestB: a = 2 a라는 변수이름이 중복되어 사용되고 있다. 만..
문제 풀이 코드 import heapq def solution(scoville, K): answer = 0 heapq.heapify(scoville) #1 while True: answer += 1 heapq.heappush(scoville,heapq.heappop(scoville) + heapq.heappop(scoville) * 2) #2 if scoville[0] >= K: #3 return answer elif len(scoville)