Python テンプレートの使い方

Python学習【365日チャレンジ!】94日目のマスターU(@Udemy11)です。

やっぱり食べすぎると体重は増えてしまいます。

普段から意識して、食べる量は減らしているものの、たまに襲ってくる強烈な食欲を抑えることって難しいんですよね。

ほんと、何も考えずに、食べたいだけ食べられたらどれだけ幸せか。。。

とはいえ、体重が増えすぎて困るのは自分なので、食欲をしっかりとコントロールしつつ、適度なダイエットを実践していこうと思います。

それではさっそくPython学習をはじめましょう!

昨日の復習

昨日は、書き込み読み込みモードの使い方について学習しました。

書き込み・読み込みを行うには、w+モードもしくはr+モードでファイルを開く必要がありましたが、状況に応じて、seek(0)を使って、カーソル位置(読み込み・書き込み位置)を初期に戻す必要がありましたね。

また、wもしくはw+モードの場合は、ファイルを開いた時点で、中身がリセットされて空の状態に上書きされました。

ファイルの書き込み・読み込みモードについては、昨日の記事を参考にしてみてください。

それでは本日のPython学習をすすめましょう!

テンプレートとは

本日は、テンプレートを使った操作方法について学習しますが、そもそもテンプレートってなんなのか、わかっていますか?

テンプレート

テンプレートは、「型板」や「鋳型」という意味を持つ英単語で、「型に流し込んで、同じ形のものをつくりだす」ことから、一般では「定型文」「ひな形」「決まった様式」などの意味で用いられる。

ようするに、同じ形式のものをいくつも作り出すためのフォーマットということです。

基本的に、テンプレートは読み込み専用で、何度も同じフォーマットのものを提供しますので、変更されることがありません。

そのテンプレートを使った一例のコードを書いてみましょう。

import string

s = """\
Hi $name
$contents
Have a good day
"""

t = string.Template(s)
contents = t.substitute(name='Mark', contents='How are you doing?')
print(contents)

出力結果

Hi Mark
How are you doing?
Have a good day

テンプレートを使うためには、最初にstringモジュールを読み込みます。

4・5行目に$が先頭にありますが、9行目でテンプレートとしてtを定義した後、それぞれの変数名に、10行目で指定した引数が変数に代入されます。

テンプレートを使うと、誰かが勝手に変更してしまうことがありません。

分業が前提

基本、酒井さんの講座は、分業が前提で解説されています。

今回のテンプレートの場合は、プログラムのことがわからないWebのデザイナーがHTMLやCSSを用意して、プログラマーはそのファイルを読み込むだけというパターンを想定しています。

デザイナーには、designというフォルダにファイルを保存してもらって、そのファイルを読み込むこむ場合がこんな感じです。(実際にこんなテンプレートはありませんので、あしからず)

design/f_template.txt

Hi $name
$contents
Have a good day

lesson.py

import string

with open('design/f_template.txt') as f:
    t = string.Template(f.read())

content = t.substitute(name='Mark', contents='How are you doing?')
print(content)

出力結果

Hi Mark
How are you doing?
Have a good day

designフォルダに保存したf_template.txtを読み込んで変数を代入しています。

テンプレートを使えば、不意に変更されては困る部分を変更されないようにすることができるので、一人で作業をしている場合でも、変更したくない部分については、テンプレートを使うようにしたほうがいいでしょう。

酒井さんの講座はシリコンバレーで働く現役プログラマーが教えるPython講座ということなので、複数人でプロジェクトを開発していくことが前提で解説されています。

なので、一人でプログラムを書いたりデザインを考えたりしている人にとっては、ちょっと引っかかる部分があるかもしれません。

そんなときは、一人でやっている内容を、複数人で分業した場合のことを考えて、講座を受講してみれば、仕事の幅が広がるかもしれません。

今回の内容も、実践的でより具体的な例があれば、すっと頭に入ってくるのかもしれませんが、この短いレクチャーでそこまで期待するのは難しいと言わざるをえません。

なので、この先、具体的な事例と出会ったときに、

あのときに学習したのは、このことだったのか!

と思える程度には、頭の片隅に残しておきましょう!

それでは、明日もGood Python!