1

これは私のスクリプトです:

fruit  = "apple"
phrase = "I like eating " + fruit + "s."

def say_fruit(fruit):
    print phrase

say_fruit('orange')

say_fruit変数内で指定された文字列を使用しようとしていphraseますが、実際には以前に割り当てられた変数を使用しています( apple)。どうすればこれを達成できますか?

4

3 に答える 3

3

コードでphraseは、モジュールのロード時に文字列にバインドされ、変更されることはありません。次のように、動的にする必要があります。

def phrase(fruit):
    return "I like eating " + fruit + "s."

def say_fruit(fruit):
    print phrase(fruit)

グローバルは、将来あなたを悩ませる悪い考えです。それらを使用したいという誘惑に抵抗してください。

于 2012-05-12T23:08:43.820 に答える
0

それで、あなたが欲しいのはこれですよね?

>>> say_fruit('orange')
I like eating oranges.
>>> say_fruit('apples')
I like eating apples.

その場合、phrase の定義を関数に移動します。最終結果は次のようになります。

def say_fruit(fruit):
    phrase = "I like eating " + fruit + "s."
    print phrase

say_fruit('orange')
于 2012-05-12T23:15:39.957 に答える
0

このコード行を実行すると

phrase = "I like eating " + fruit + "s."

Python は自動的に を代入'apple'fruit、 にphraseなり" I like eating apples."ます。

.format()読みやすさを維持するため、これを使用することを好みます。

fruit  = "apple"
phrase = "I like eating {fruit}s."

def say_fruit(fruit):
    print phrase.format(fruit=fruit)

say_fruit('orange')

.format()呼び出されたとき{var}の内容で置き換えます。var

于 2012-05-12T23:17:34.120 に答える