这是我的脚本:
fruit = "apple"
phrase = "I like eating " + fruit + "s."
def say_fruit(fruit):
print phrase
say_fruit('orange')
我试图使用变量say_fruit
内部给出的字符串,它实际上使用了之前已经分配给它的变量( )。我怎样才能做到这一点?phrase
apple
在您的代码中,phrase
当模块加载并且永远不会更改时,它绑定到一个字符串。你需要是动态的,像这样:
def phrase(fruit):
return "I like eating " + fruit + "s."
def say_fruit(fruit):
print phrase(fruit)
全局变量只是一个坏主意,将来会困扰您。抵制使用它们的诱惑。
所以你想要的是这个,对吧?
>>> 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')
当你运行这行代码时
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
。