[英]Python - What happens when I write statements in the interpreter without 'print'?
兩者之間沒有必然的聯系。 r
引入了一個原始的字符串文字,它不解析轉義碼,這意味着引號之間的\\
將是字符串數據中的實際\\
字符。
print
將打印出實際的字符串,而僅在>>>
提示符下鍵入字符串文字將使Python隱式打印字符串的值,但是它將作為字符串文字(帶有特殊字符轉義)進行打印,因此您可以將其粘貼回>>>
並獲得相同的字符串。
編輯:在某些評論中提到了repr()
。 基本上,這是要返回一個對象的表示形式,該表示形式可以解析為等效的對象,而str()
的目的更多地是人類可讀的描述。 對於內置對象,兩者都是適當的預定義,而對於用戶對象,可以通過定義特殊方法__repr__()
和__str__()
來定義它們。
>>> obj
將打印出repr(obj)
,而print obj
將打印str(obj)
的值。
>>> class Foo(object):
... def __str__(self):
... return "str of Foo"
... def __repr__(self):
... return "Foo()"
...
>>> f = Foo()
>>> f
Foo()
>>> print f
str of Foo
>>> eval(repr(f))
Foo()
另外,關於\\
es,也應該注意Python將忽略它不知道的轉義序列:
>>> [c for c in '\w']
['\\', 'w']
>>> [c for c in '\n']
['\n']
\\n
成為換行符,而\\w
仍然是反斜杠,后跟w
。
例如,在'hello\\\\\\world'
,第一個\\
逸出第二個\\
,而第三個\\
被保留,因為后面跟着w
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.