Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの文字列テンプレートクラス?


Python文字列テンプレートクラスは、単純なテンプレート文字列を作成するために使用されます。 Pythonテンプレート文字列は、Python2.4で最初に導入されました。 Python文字列テンプレートは、テンプレート文字列を引数としてコンストラクターに渡すことで作成されます。文字列フォーマット演算子が置換のパーセント記号に使用され、テンプレートオブジェクトがドル記号を使用する場合。

テンプレートクラスは、テンプレートから文字列を作成するための3つのメソッドを提供します-

  • クラスstring.Template(template )-コンストラクターは、テンプレート文字列である単一の引数を取ります。

  • 代替(マッピング、**キーワード)- テンプレートの文字列値を文字列値(マッピング)に置き換えるメソッド。マッピングは辞書のようなオブジェクトであり、その値は辞書としてアクセスできます。キーワード引数が使用されている場合、それはプレースホルダーを表します。マッピングとキーワードの両方を使用する場合、キーワードが優先されます。プレースホルダーがマッピングまたはキーワードにない場合、keyErrorがスローされます。

  • safe_substitute(mapping、**キーワード)- substitute()と同様に機能します。ただし、マッピングまたはキーワードにプレースホルダーがない場合は、デフォルトで元のプレースホルダーが使用されるため、KeyErrorが回避されます。また、「$」が出現するとドル記号が返されます。

テンプレートオブジェクトには、公開されている属性も1つあります-

  • テンプレート- これは、コンストラクターのテンプレート引数に渡されるオブジェクトです。読み取り専用アクセスは強制されませんが、プログラムでこの属性を変更しないことをお勧めします。

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.

テンプレート文字列の印刷

テンプレートオブジェクトのtemplate属性は、テンプレート文字列を返します。

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>

有効な識別子文字がプレースホルダーの後に続くが、${noun}ificationなどのプレースホルダーの一部ではない場合に必要です。

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

結果

Test adjective is Testing

  1. Pythonのcasefold()文字列

    この関数は、単語の文字を小文字に変換するのに役立ちます。 2つの文字列に適用すると、文字の大文字小文字の種類に関係なく、それらの値と一致する可能性があります。 casefold()の適用 以下の例では、casefold()関数を文字列に適用すると、結果はすべて小文字で出力されます。 例 string = "BestTutorials" # print lowercase string print(" lowercase string: ", string.casefold()) 出力 上記のコードを実行すると、次の結果が得られます- Lowerca

  2. 文字列をPythonクラスオブジェクトに変換するにはどうすればよいですか?

    Python関数へのユーザー入力として文字列を指定し、現在定義されている名前空間にその名前のクラスがある場合は、その文字列からクラスオブジェクトを取得したいと思います。 例 class Foobar:     pass print eval("Foobar") print type(Foobar) 出力  __main__.Foobar <type 'classobj'> 文字列をクラスオブジェクトに変換する別の方法は次のとおりです 例 import sys class Foobar: