用Python替换变量

时间:2012-05-12 23:07:04

标签: python variables

这是我的剧本:

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

def say_fruit(fruit):
    print phrase

say_fruit('orange')

我正在尝试让say_fruit使用phrase变量中给出的字符串,该变量实际上使用之前已分配的变量(apple)。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:3)

在您的代码中,phrase在模块加载时绑定到一个字符串,并且永远不会更改。你需要保持动态,如下所示:

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

def say_fruit(fruit):
    print phrase(fruit)

Globals只是一个糟糕的主意,将来会困扰你。抵制使用它们的诱惑。

答案 1 :(得分:0)

所以你想要的就是这个,对吧?

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

如果是,请将短语的定义移到函数中。最终结果应该是:

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

say_fruit('orange')

答案 2 :(得分:0)

当你运行这行代码时

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

Python自动将'apple'替换为fruitphrase变为" 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的内容。