3 回答

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
這似乎是元組的行為。打印元組時(shí),__repr()__對(duì)每個(gè)元素進(jìn)行打印調(diào)用。列表也是如此。
我試過(guò)這個(gè):
tup = "xxx\nxx",
lst =["xxx\nxx"]
for t in tup,lst:
print('t :', t)
for s in t:
print('element:',s)
print(' repr:',s.__repr__())
print('---')
輸出是:
t : ('xxx\nxx',)
element: xxx
xx
repr: 'xxx\nxx'
---
t : ['xxx\nxx']
element: xxx
xx
repr: 'xxx\nxx'
---
因此,元組和列表的行為相同。
當(dāng)我們有一個(gè)字符串時(shí),調(diào)用__repr__()不會(huì)擴(kuò)展\n字符,而是在它周圍加上引號(hào):
s = "xxx\nxx"
print('s :', s)
print('s.__repr__():', s.__repr__())
輸出:
s : xxx
xx
s.__repr__(): 'xxx\nxx'
running.t、interjay和Daniel Roseman在評(píng)論中提到了這個(gè)元組行為,但沒(méi)有在答案中提到,這就是我發(fā)布這個(gè)答案的原因。

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
寫入return something,
與 相同return (something,)
:它返回一個(gè)包含一個(gè)元素的元組。當(dāng)你print
這樣做時(shí),它會(huì)顯示元組的外括號(hào),里面的字符串將被打印為其源代碼表示,即帶有轉(zhuǎn)義碼和內(nèi)引號(hào)。
但是,return something
只需返回該值,然后就可以正常打印該值。

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
這似乎是 Python 中元組的行為。你可以用一個(gè)更簡(jiǎn)單的例子來(lái)測(cè)試這個(gè):
>>> print ("xxx\n\nx",) ('xxx\n\nx',)
似乎 Python 可以幫助您調(diào)試并在打印時(shí)轉(zhuǎn)義字符串中的所有命令序列,以便字符串以與定義相同的方式出現(xiàn)。
不過(guò),這確實(shí)讓你感到困惑,有趣的案例。:)
添加回答
舉報(bào)