【发布时间】:2025-12-28 13:20:11
【问题描述】:
我在 Eclipse PyDev 上遇到了一个错误 AttributeError: '_socketobject' object has no attribute 'getservbyname',代码如下:
from socket import *
help(socket.getservbyname)
【问题讨论】:
我在 Eclipse PyDev 上遇到了一个错误 AttributeError: '_socketobject' object has no attribute 'getservbyname',代码如下:
from socket import *
help(socket.getservbyname)
【问题讨论】:
在进行星型导入时,不必将模块名称附加到方法中。
试试这个:
import socket
help(socket.getservbyname)
如果你想进行星号导入,由于命名空间污染不建议这样做,这是你应该做的:
from socket import *
help(getservbyname)
【讨论】:
使用 python,您可以进行三种导入方式
import socket
help(socket.getservbyname)
此表单将整个套接字模块导入到您的同名代码中。然后,您可以通过前缀名称访问其中的内容
接下来:
import socket as othersocket
help(othersocket.getservbyname)
这会将整个套接字模块导入到您的代码中,但使用了备用名称。然后,您可以使用备用前缀名称从中访问内容
最后:
from socket import *
# or
from socket import getservbyname
help(getservbyname)
这样,您只需将模块中的特定位导入代码,其名称不带前缀。
如您所见,有几种方法可以做到这一点,您只需要在导入方式和使用方式上保持一致
【讨论】: