我正在尝试理解此Python代码中的readRequest
。
sc, sockname = s.accept()
...
requestType = data['RequestType']
print '[-] Type of data:',type(data)
print '[-] Data:',data
if requestType == 1:
sc.sendall(readRequest)
readRequest
看起来像一个变量,但如果我在readRequest上搜索,我只找到一个名为readRequest的方法,就像这样
def readRequest(path):
我没有看到名为readRequest的变量。
此Python代码中发生了什么? readRequest是否有一些调用readRequest方法的简写?如果是这样,什么参数传递?
我正在查看我发现的代码。代码是否可能有错误或不完整?
答案 0 :(得分:0)
你发现了一个错误,或者你对readRequest
的错误是错误的。
将函数作为参数传递给另一个函数是完全有效的(例如,参见map
函数,该函数需要一个函数作为其第一个参数。)
但是sc
变量几乎可以肯定是socket
,因为它来自sc, sockname = s.accept
,这意味着sc.sendall
是一个带有字符串并发送的函数那些字节到套接字另一端的客户端。函数不是字节串,因此您将得到如下所示的错误:
TypeError: 'function' does not support the buffer interface
如果发生这种情况,很可能是那些编写此代码的人打算调用 readRequest
并传递其结果,而不仅仅是传递函数本身,在这种情况下,您将修复它:
sc.sendall(readRequest())
另一方面,如果没有错误,这意味着readRequest
毕竟不是一个函数,而是一个字符串,而你在搜索中找不到它。