先討論一下它的用法:

str = “abcdef”
str.replace(old,new,[max])方法用於字串的修改,將字串str中的字元old替換為
新的new字串,max是可選引數,可以寫也可以不寫,不寫的情況下,表示將str中所有的old替換為new,寫之後表示最大替換次數。最後將修改後的字串給返回,他是有返回值的
例如:
str= “abcdef”
print(str.replace(“abc”,’AAA’))
執行結果:
AAAdef

但是,字串是不可以修改的型別,它並沒有修改以前的str,可以看下列程式碼:

str= "abcdef"
print(str.replace("abc",'AAA'))
print((str))
print(id(str))
print(id(str.replace("abc",'AAA')))

結果截圖:這裡寫圖片描述
以前的還是以前的,他們的記憶體不一樣,當你引用str這個變數的時候,並沒有得到你想要的修改後的值,如果你想要通過str的引用得到修改後的值,那麼,將str這個變數指向修改後的記憶體地址即可(目前我只知道這種方法,其他方法比較麻煩,不過都修改不了最初str記憶體裡的值):

str= "abcdef"
print(str)
print(id(str))
str = str.replace("abc",'AAA')
print(str)
print(id(str))

執行截圖:
這裡寫圖片描述
仔細看看,轉換前後str的記憶體地址發生了變化,這是因為將 str 變數指向了修改後的