The fine manual沒有解決什麼str()
方法提供三個參數的時候,我在此代碼找到了從requests/models.py
做:提供三個參數時`str()`方法返回什麼?
content = str(self.content, encoding, errors='replace')
這哪裏是記錄?它有什麼作用?
The fine manual沒有解決什麼str()
方法提供三個參數的時候,我在此代碼找到了從requests/models.py
做:提供三個參數時`str()`方法返回什麼?
content = str(self.content, encoding, errors='replace')
這哪裏是記錄?它有什麼作用?
您正在閱讀的文檔版本2,但使用閱讀代碼(或匹配)的Python 3
str(object='') str(object=b'', encoding='utf-8', errors='strict')
Return a str version of object. See str() for details.
以下是說一下encoding
和下面的鏈接errors
關鍵字參數:
If at least one of
encoding
orerrors
is given,object
should be abytes
-like object (e.g.bytes
orbytearray
). In this case, ifobject
is abytes
(orbytearray
) object, thenstr(bytes, encoding, errors)
is equivalent tobytes.decode(encoding, errors)
. Otherwise, thebytes
object underlying thebuffer
object is obtained before callingbytes.decode()
.
謝謝。我正在運行Python 2代碼,所以我認爲我需要Python 2文檔。我應該說明。 – dotancohen
這不是內置str
功能。看看imports at the top:
from .compat import (
cookielib, urlparse, urlunparse, urlsplit, urlencode, str, bytes, StringIO,
is_py2, chardet, json, builtin_str, basestring)
肯尼斯已經定義了Python 2和3之間的兼容性自己compat
模塊,他改變了幾個內建包括str
。
由於you can see in that module,在Python 2中,它的別名unicode
到str
,所以它幾乎和Python3 str
一樣工作。
謝謝。出於這個原因,當人們重寫內置函數時,我發現它很有問題。 – dotancohen
我同意,但我明白他爲什麼在這種情況下做到了。 Django採用的另一種方法是使用'six'庫 - 但這意味着在任何地方調用'six.u()'等。 –
對,只要作者希望成爲唯一一個處理代碼的人。平心而論,只要我決定「嗯,看看這件事情在做什麼可能是一個好主意」,我知道我一直處於一個受到傷害的世界。該庫本身是在我寫的應用程序中拋出Unicode錯誤:'File「/usr/lib/python2.7/dist-packages/requests/models.py」,行809,文本 content = str(self。內容,編碼,錯誤='替換') TypeError:unicode()參數2必須是字符串,而不是None。 – dotancohen
內建的'str'函數只需要一個參數,可能是'models.py'中的類有它自己的'str'函數。 –