Python:Template使用マニュアル
4753 ワード
17年7月第5編ログは7月に終わり、8月はもうすぐ始まります.最近、人工知能の勢いはますます越えてきたが、この波の下で誰が残って、誰が着実に新しい成果を出すことができるのか、すべては分からない.今週持ってきたブログは主にTemplateの使用を説明しています.このブログはpython 3に基づいて書かれています.最近微信のプロジェクトで採用されている言語はpython 3なので、次は本題に入ります.Templateは間違いなく良いもので、文字列のフォーマットを固定することができ、Templateはstringのクラスに属しているので、使用するには以下の方法で呼び出すことができます.
templateには特殊な識別子があり、その使用には以下のルールがある:その主な実現方式はxxxであり、xxxはpython命名規則を満たす文字列であり、すなわち数字で始まることができず、キーワードにすることができないなど、xxxが他の文字列と接触する必要がある場合、xxxを包むことができる.例えば、aaa{xxx}aaa
実行結果:
Templateは、辞書を使用してデータを直接転送することもできます.
実行結果:
Templateの実装は、まずTemplateによって文字列を初期化することである.これらの文字列にはkeyが含まれています.substituteまたはsafe_を呼び出すsubsitituteは、key値をメソッドに渡されたパラメータに対応させ、指定された位置に文字列をインポートします.この方式の1つの利点はprint'%s'のような方式ではなく,keyが正しい限り値が正しく挿入される各パラメータの順序が固定されなければならないことである.substituteは厳粛な方法で、keyが入力されていない場合は、必ずエラーを報告します.見苦しいですが、問題を見つけることができます.safe_substituteはエラーを報告するのではなく、$xxxを結果文字列に直接入力します.例:
結果:
safeを通してsubstituteはあなたのプログラムがいつも正しいことを保証します.また、Templateでは書き換えを継承することで、いくつかの個性的な修正を行うこともできます.delimiterフィールドを変更すると、$文字を「#」などの他の文字に変更できますが、新しいマーカーは正規表現の仕様に合致する必要があります.idpatternを変更することでkeyのネーミングルールを変更することができます.例えば、最初の文字の先頭がaでなければならないことを規定することは、仕様のネーミングに役立ちます.もちろん,これも正則表現によって実現される.
以上はTemplateについての詳しい説明で、皆さんに助けをもたらすことを望んで、上の内容は、すべてコードの実際の検証を通じて、正確で間違いがないことを保証することができます.
from string import Template
templateには特殊な識別子があり、その使用には以下のルールがある:その主な実現方式はxxxであり、xxxはpython命名規則を満たす文字列であり、すなわち数字で始まることができず、キーワードにすることができないなど、xxxが他の文字列と接触する必要がある場合、xxxを包むことができる.例えば、aaa{xxx}aaa
from string import Template
s=Template("There $a and ${b}s")
print (s.substitute(a='apple',b='banana'))
print (s.safe_substitute(a='apple',b='banbana'))
実行結果:
PycharmProjects/untitled/reply.py
There apple and bananas
There apple and banbanas
Process finished with exit code 0
Templateは、辞書を使用してデータを直接転送することもできます.
from string import Template
s=Template("There $a and ${b}s")
d={'a':'apple','b':'banbana'}
print(s.substitute(d))
実行結果:
from string import Template
s=Template("There $a and ${b}s")
d={'a':'apple','b':'banbana'}
print(s.substitute(d))
Templateの実装は、まずTemplateによって文字列を初期化することである.これらの文字列にはkeyが含まれています.substituteまたはsafe_を呼び出すsubsitituteは、key値をメソッドに渡されたパラメータに対応させ、指定された位置に文字列をインポートします.この方式の1つの利点はprint'%s'のような方式ではなく,keyが正しい限り値が正しく挿入される各パラメータの順序が固定されなければならないことである.substituteは厳粛な方法で、keyが入力されていない場合は、必ずエラーを報告します.見苦しいですが、問題を見つけることができます.safe_substituteはエラーを報告するのではなく、$xxxを結果文字列に直接入力します.例:
from string import Template
s=Template("There $a and ${b}s")
d={'a':'apple'}
#print(s.substitute(d))
print(s.safe_substitute(d))
結果:
PycharmProjects/untitled/reply.py
There apple and ${b}s
Process finished with exit code 0
safeを通してsubstituteはあなたのプログラムがいつも正しいことを保証します.また、Templateでは書き換えを継承することで、いくつかの個性的な修正を行うこともできます.delimiterフィールドを変更すると、$文字を「#」などの他の文字に変更できますが、新しいマーカーは正規表現の仕様に合致する必要があります.idpatternを変更することでkeyのネーミングルールを変更することができます.例えば、最初の文字の先頭がaでなければならないことを規定することは、仕様のネーミングに役立ちます.もちろん,これも正則表現によって実現される.
from string import Template
class MyTemplate(Template):
delimiter = "#"
idpattern = "[a][_a-z0-9]*"
def test():
s='#aa is not #ab'
t=MyTemplate(s)
d={'aa':'apple','ab':'banbana'}
print (t.substitute(d))
if __name__=='__main__':
test()
以上はTemplateについての詳しい説明で、皆さんに助けをもたらすことを望んで、上の内容は、すべてコードの実際の検証を通じて、正確で間違いがないことを保証することができます.