return 함수
return 함수
return 함수는 매크로에서 호출자에게 데이터를 반환하는 데 쓸 수 있어요. return 호출을 통해 데이터의 타입(dict, list, int 등)이 보존돼요. 매크로 안에서 return 함수를 표현식(expression)이나 문(statement)으로 사용할 수 있어요.
출처: 문서
본문
인자(Args):
-
data: 호출자에게 반환할 데이터 -
표현식 — 매크로에서 문자열을 출력하는 게 목표일 때는 표현식으로 써요.
-
do태그 문 — 출력 문자열을 만들지 않고 return 함수를 실행하려면do태그를 가진 문으로 써요. 결과를 템플릿에 직접 삽입하지 않고 작업을 수행하려 할 때 특히 유용해요.
다음 예시에서 {{ return([1,2,3]) }}은 문자열을 직접 출력하는 표현식으로 동작해요. 따라서 반환된 값을 SQL 코드에 직접 삽입하는 데 적합해요.
macros/get_data.sql
{% macro get_data() %}
{{ return([1,2,3]) }}
{% endmacro %}
대안으로 do 태그(또는 표현식-문)를 가진 문을 사용해 출력 문자열을 만들지 않고 return 함수를 실행할 수 있어요.
다음 예시에서 {% do return([1,2,3]) %}은 return 동작을 실행하지만 문자열을 출력하지 않는 문으로 동작해요:
macros/get_data.sql
{% macro get_data() %}
{% do return([1,2,3]) %}
{% endmacro %}
models/my_model.sql
select
-- getdata() returns a list!
{% for i in get_data() %}
{{ i }}
{%- if not loop.last %},{% endif -%}
{% endfor %}
더 알아보기 (Learn more)
return은 매크로의 값을 호출자에게 넘겨주는 핵심 함수예요.- 관련 개념: do 태그, Jinja 매크로.