Python Paramiko Channel.recv() 的实际 return 值类型是什么?
What is the actual return value type of Python Paramiko Channel.recv()?
我有一个 2.7 版的旧 Python 脚本,它使用函数 Paramiko Channel.recv()
方法。我正在尝试将脚本迁移到 Python 版本 3(和 Paramiko 2.7.1),但文档说:
:return: received data, as a str
/bytes
.
由于从 Python 2 迁移到 Python 3 时的主要问题是不同的 basestrings,我需要 return 类型的更具体的规范。
函数的 return 类型取决于什么?或者:我如何确定 return 值始终相同(例如 bytestring)?
一些代码片段:
t = paramiko.Transport(socklike_obj)
t.start_client()
t.auth_password(usr, pw)
chan = t.open_session()
nbytes = 2**16-1 # 65535
out = chan.recv(nbytes)
while out != b'': # or: out != ''
if b'\n' in out or b'\r' in out:
parts = out.splitlines()
在Python3、方法总是returnsbytes
.
在Python 2、方法returns一个字符串。
我有一个 2.7 版的旧 Python 脚本,它使用函数 Paramiko Channel.recv()
方法。我正在尝试将脚本迁移到 Python 版本 3(和 Paramiko 2.7.1),但文档说:
:return: received data, as a
str
/bytes
.
由于从 Python 2 迁移到 Python 3 时的主要问题是不同的 basestrings,我需要 return 类型的更具体的规范。
函数的 return 类型取决于什么?或者:我如何确定 return 值始终相同(例如 bytestring)?
一些代码片段:
t = paramiko.Transport(socklike_obj)
t.start_client()
t.auth_password(usr, pw)
chan = t.open_session()
nbytes = 2**16-1 # 65535
out = chan.recv(nbytes)
while out != b'': # or: out != ''
if b'\n' in out or b'\r' in out:
parts = out.splitlines()
在Python3、方法总是returnsbytes
.
在Python 2、方法returns一个字符串。