2

Groovy には GString の概念があります。次のようなコードを書くことができます。

def greeting = 'Hello World'
println """This is my first program ${greeting}"""

String 内から変数の値にアクセスできます。

Pythonでこれを行うにはどうすればよいですか?

- ありがとう

4

5 に答える 5

5

Python では、可能な変数の辞書を明示的に渡す必要があります。文字列内から任意の「外部」変数にアクセスすることはできません。locals()ただし、ローカル スコープのすべての変数を含む辞書を返す関数を使用できます。

実際の置換については、それを行う方法がたくさんあります (なんと非pythonic!):

greeting = "Hello World"

# Use this in versions prior to 2.6:
print("My first programm; %(greeting)s" % locals())

# Since Python 2.6, the recommended example is:
print("My first program; {greeting}".format(**locals()))

# Works in 2.x and 3.x:
from string import Template
print(Template("My first programm; $greeting").substitute(locals()))
于 2009-04-21T07:00:49.307 に答える
3
d = {'greeting': 'Hello World'}
print "This is my first program %(greeting)s" % d
于 2009-04-21T06:45:23.963 に答える
1

正確にはできません...

あなたが実際に得ることができる最も近いものは、標準の % ベースの置換を使用することだと思います。

greeting = "Hello World"
print "This is my first program %s" % greeting

そうは言っても、Python 2.6 の時点で、さまざまな方法でこれを行うことができるいくつかの派手な新しいクラスがあります。詳細については、セクション 8.1.2 以降の 2.6 の文字列ドキュメントを参照してください。

于 2009-04-21T06:47:02.790 に答える
1

テンプレートを作成しようとしている場合は、Cheetah を調べることをお勧めします。それはあなたが話していること、同じ構文、そしてすべてを正確に行うことができます。

http://www.cheetahtemplate.org/

于 2009-04-21T06:51:06.103 に答える
1

Python 2.6+ では、次のことができます。

"My name is {0}".format('Fred')

PEP 3101をチェックしてください。

于 2009-04-21T06:51:11.500 に答える