Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 문자열 템플릿 클래스?

<시간/>

Python 문자열 템플릿 클래스는 간단한 템플릿 문자열을 만드는 데 사용됩니다. Python 템플릿 문자열은 Python 2.4에서 처음 도입되었습니다. Python 문자열 템플릿은 템플릿 문자열을 생성자에 인수로 전달하여 생성됩니다. 여기서 대체에 대한 백분율 기호에 사용되는 문자열 형식 지정 연산자와 템플릿 개체는 달러 기호를 사용합니다.

템플릿 클래스는 템플릿에서 문자열을 생성하는 세 가지 방법을 제공합니다 -

  • 클래스 string.Template(템플릿 ) - 생성자는 템플릿 문자열인 단일 인수를 사용합니다.

  • 대체(매핑, **키워드) - 템플릿 문자열 값을 문자열 값(mapping)으로 대체하는 메소드. 매핑은 사전과 유사한 개체이며 해당 값은 사전으로 액세스할 수 있습니다. 키워드 인수가 사용되는 경우 자리 표시자를 나타냅니다. 매핑과 키워드를 모두 사용하는 경우 키워드가 우선합니다. 매핑이나 키워드에 자리 표시자가 없으면 keyError가 발생합니다.

  • safe_substitute(매핑, **키워드) - 대체()와 유사한 기능을 합니다. 그러나 매핑이나 키워드에서 자리 표시자가 누락된 경우 기본적으로 원래 자리 표시자가 사용되므로 KeyError를 방지할 수 있습니다. 또한 '$'가 나오면 달러 기호를 반환합니다.

템플릿 개체에는 공개적으로 사용 가능한 속성도 하나 있습니다.

  • 템플릿 - 생성자의 템플릿 인수에 전달된 객체입니다. 읽기 전용 액세스 권한은 적용되지 않지만 프로그램에서 이 속성을 변경하지 않는 것이 좋습니다.

Python 템플릿 문자열 예제

from string import Template

t = Template('$when, $who $action $what.')
s= t.substitute(when='In the winter', who='Rajesh', action='drinks', what ='Coffee')
print(s)

#dictionary as substitute argument

d = {"when":"In the winter", "who":"Rajesh", "action":"drinks","what":"Coffee"}
s = t.substitute(**d)
print(s)

출력

In the winter, Rajesh drinks Coffee.
In the winter, Rajesh drinks Coffee.

safe_substitute()

from string import Template

t = Template('$when, $who $action $what.')
s= t.safe_substitute(when='In the winter', who='Rajesh', action='drinks', what ='Coffee')
print(s)

결과

In the winter, Rajesh drinks Coffee.

템플릿 문자열 인쇄

템플릿 개체의 템플릿 속성은 템플릿 문자열을 반환합니다.

from string import Template

t = Template('$when, $who $action $what.')
print('Template String: ', t.template)

결과

Template String: $when, $who $action $what.

$ 기호 이스케이프

from string import Template

t = Template('$$ is called $name')
s=t.substitute(name='Dollar')
print(s)

결과

$ is called Dollar

${identifier} example

${<identifier>} is equivalent to $<identifier>

유효한 식별자 문자가 자리 표시자 뒤에 있지만 ${명사}화와 같이 자리 표시자의 일부가 아닌 경우에 필요합니다.

from string import Template
t = Template('$noun adjective is ${noun}ing')
s = t.substitute(noun='Test')
print(s)

결과

Test adjective is Testing