gpt4 book ai didi

Python - 替换套接字库中由另一个库调用的函数,该函数由另一个库调用

转载 作者:行者123 更新时间:2023-12-01 02:39:58 29 4
gpt4 key购买 nike

我正在编写一个程序,需要重新定义 socket.getaddrinfo() 的工作方式。我使用第三方库,它导入了其他几个项目,最终导入了 httplib2,然后导入了套接字。

据我所知,猴子修补是重写此方法的方法,但我显然做得不对。

我已经尝试过制作函数 my_getaddrinfo 。现在它只使用默认代码

def my_getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
addrlist = []

for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
af, socktype, proto, canonname, sa = res
addrlist.append((_intenum_converter(af, AddressFamily),_intenum_converter(socktype, SocketKind),proto, canonname, sa))

return addrlist

import socket
socket.getaddrinfo = my_getaddrinfo

#Third party library I'm trying to use
from Otherlibrary.test import testconnector
connector = testconnector(initvalue)
connector.do()

最终发生的是我收到错误“name _socket 未定义”。我有点迷失在这里了。任何帮助都会很棒。谢谢。

最佳答案

在你的 def my_getaddrinfo 里面,使用前_socket你可以做from socket import _socket这应该可以。

关于Python - 替换套接字库中由另一个库调用的函数,该函数由另一个库调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45823811/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com