[DRF] permission_classes = [A, B]와 [A & B]의 차이
1️⃣ 선요약 permission_classes = [A, B] permission_classes = [A & B] 결과적으로 둘은 거의 같다. 그러나 실행 방식에 차이가 있고, 상황에 따라 다르지만, 논리곱(AND)연산만을 수행할 경우, [A, B]의 방식이 일반적으로 조금 더 이점이 있다. 단, 두 조건을 중첩해서 OR과 비교할 경우(괄호를 통한 우선순위가 필요하다면), &를 사용하는 것에 이점이 있다. 2️⃣ comma(,)를 사용했을 때 DRF의 .check_permissions(…) 메서드를 확인해보자. def check_permissions(self, request): """ Check if the request should be permitted. Raises an appropriate ex..
2023. 6. 21.
가변인자 *args, **kwargs
1️⃣ **args (Positional Variadic Arguments) *args는 위치 인자를 임의의 개수로 받을 수 있다. 함수를 호출할 때 넣은 위치 인자들은 튜플로 묶여서 함수 내부로 전달된다. def foo(*args): print(args) #(1, 2, 3, 4, 5) foo(1, 2, 3, 4, 5) 2️⃣ **kwargs (Keyword Variadic Arguments) **kwargs는 키워드 인자를 임의의 개수로 받을 수 있다. 함수를 호출할 때 넣은 키워드 인자들은 딕셔너리로 묶여서 함수 내부로 전달된다. def var(**kwargs): print(kwargs) # {'name': 'codemte', 'age': 100, 'status': 'good', 'a': False,..
2023. 5. 31.