是否可以使用python中的函数清空字符串?

时间:2017-05-09 04:43:52

标签: python string function

是否可以使用python中的函数清空字符串?

例如:

otherText="hello"

def foo(text):
    text=""

foo(otherText)
print(otherText)

打印

  

您好

而不是空字符串。有没有办法清空字符串而不指定返回值或使用全局变量?

2 个答案:

答案 0 :(得分:3)

这是不可能的。这有两个原因

  1. Python字符串是不可变的

  2. Python实现了一个所谓的"call by sharing" evaluation strategy

      

    共享调用的语义与引用调用的不同之处在于函数中函数参数的赋值对调用者不可见

答案 1 :(得分:2)

如zerkms所述,严格说来是不可能的,python不会通过引用传递参数。

可以使用一些技巧作为变通方法,例如传递包含字符串的列表或对象。

otherText=["hello"]

def foo(text):
    text[0]="Goodbye string"

foo(otherText)
print(otherText) //Goodbye string