>  기사  >  백엔드 개발  >  즉각적인 코드 컨텍스트를 넘어서 F-문자열 평가를 어떻게 연기할 수 있습니까?

즉각적인 코드 컨텍스트를 넘어서 F-문자열 평가를 어떻게 연기할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-03 01:56:03966검색

How Can We Defer the Evaluation of F-Strings Beyond the Immediate Code Context?

F-문자열의 평가 난제 극복

템플릿 문자열을 사용하여 파일을 구성할 때 f-문자열의 간결함이 매우 매력적입니다. 그러나 템플릿 정의가 직접적인 코드 컨텍스트 외부에 있을 때 어려움이 발생합니다. format(**locals()) 호출의 필요성을 없애고 f-문자열 평가를 어떻게 연기할 수 있습니까?

이 딜레마를 해결하는 강력한 함수인 fstr()을 입력하세요. 작동 방식은 다음과 같습니다.

<code class="python">def fstr(template):
    return eval(f'f&quot;&quot;&quot;{template}&quot;&quot;&quot;')</code>

이 함수를 사용하려면 원하는 템플릿에서 fstr()을 호출하면 됩니다.

<code class="python">template_a = "The current name is {name}"
names = ["foo", "bar"]
for name in names:
    print(fstr(template_a))
# Output:
# The current name is foo
# The current name is bar</code>

결정적으로, 제안된 다른 솔루션과 달리 fstr()은 다음을 허용합니다. 함수 호출 및 속성 액세스를 포함하여 템플릿 내의 더 복잡한 표현식:

<code class="python">template_b = "The current name is {name.upper() * 2}"
for name in names:
    print(fstr(template_b))
# Output:
# The current name is FOOFOO
# The current name is BARBAR</code>

이 솔루션을 사용하면 평가를 효과적으로 연기할 수 있습니다. 간결하고 동적인 템플릿 처리를 위한 강력한 기능을 유지하면서 f-문자열을 사용합니다.

위 내용은 즉각적인 코드 컨텍스트를 넘어서 F-문자열 평가를 어떻게 연기할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.