set 컨텍스트 메서드

set 컨텍스트 메서드

set 컨텍스트 메서드는 어떤 iterable을 고유한 iterable 요소들의 시퀀스(집합, set)로 변환할 수 있어요.

출처: 문서

본문

— Jinja의 {% set foo = "bar" ... %} 표현식과 혼동하지 마세요. 그건 변수를 정의하는 거랍니다. {% set %}로 SQL 문자열을 만들 때의 예시(그리고 {{ }}를 따옴표 문자열 안에 중첩하면 안 되는 이유)는 Don't nest your curlies를 참고해요.

인자(Args):

  • value: 변환할 iterable(예: 리스트)
  • default: value 인자가 유효한 iterable이 아닐 때 반환할 기본값

사용법

{% set my_list = [1, 2, 2, 3] %}
{% set my_set = set(my_list) %}
{% do log(my_set) %}  {# {1, 2, 3} #}
{% set my_invalid_iterable = 1234 %}
{% set my_set = set(my_invalid_iterable) %}
{% do log(my_set) %}  {# None #}
{% set email_id = "'[email protected]'" %}

set_strict

set_strict 컨텍스트 메서드는 어떤 iterable을 고유한 iterable 요소들의 시퀀스(집합)로 변환할 수 있어요. set 컨텍스트 메서드와의 차이는, set_strict 메서드는 제공된 값이 유효한 iterable이 아니라 집합으로 변환할 수 없을 때 TypeError 예외를 발생시킨다는 거예요.

인자(Args):

  • value: 변환할 iterable(예: 리스트)
{% set my_list = [1, 2, 2, 3] %}
{% set my_set = set(my_list) %}
{% do log(my_set) %}  {# {1, 2, 3} #}
{% set my_invalid_iterable = 1234 %}
{% set my_set = set_strict(my_invalid_iterable) %}
{% do log(my_set) %}

Compilation Error in ... (...)
  'int' object is not iterable

더 알아보기 (Learn more)

  • set은 유효하지 않은 iterable이면 None을 반환하고, set_strict는 예외를 던져요.
  • 관련 개념: var, Jinja {% set %} 문.