Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 属性错误';非类型';对象没有属性';recv&x27;_Python_Python 3.x - Fatal编程技术网

Python 属性错误';非类型';对象没有属性';recv&x27;

Python 属性错误';非类型';对象没有属性';recv&x27;,python,python-3.x,Python,Python 3.x,首先我要说的是,我以前从未尝试过用python编写代码 我试图让Twitch IRC机器人工作,但我一直失败 我的bot.py代码如下所示: from src.lib import irc as irc_ from src.lib import functions_general from src.lib import functions_commands as commands from src.config import config class PartyMachine:

首先我要说的是,我以前从未尝试过用python编写代码

我试图让Twitch IRC机器人工作,但我一直失败

我的bot.py代码如下所示:

from src.lib import irc as irc_

from src.lib import functions_general

from src.lib import functions_commands as commands

from src.config import config

class PartyMachine:

    def __init__(self, config):
        self.config = config
        self.irc = irc_.irc(config)
        self.socket = self.irc.get_irc_socket_object()


    def sock(self):
        irc = self.irc
        sock = self.socket
        config = self.config
        kage = sock

        while True:
            data = sock.recv(2048).rstrip()

            if len(data) == 0:
                pp('Connection was lost, reconnecting.')
                sock = self.irc.get_irc_socket_object()

            if config['debug']:
                print (data)
我的config.py在这里:

'socket_buffer_size': 1024
def get_irc_socket_object(self):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.settimeout(10)

    self.sock = sock

    try:
        sock.connect((self.config['server'], self.config['port']))
    except:
        pp('Cannot connect to server (%s:%s).' % (self.config['server'], self.config['port']), 'error')
        sys.exit()

    sock.settimeout(None)
def sock_send(sock, send, self):
    sock.send('USER %s\r\n' % self.config['username'], sock.encode('utf-8'), send.encode('utf-8'))
    sock.send('PASS %s\r\n' % self.config['oauth_password'])
    sock.send('NICK %s\r\n' % self.config['username'])

    if self.check_login_status(sock.recv(1024)):
        pp('Login successful.')
    else:
        pp('Login unsuccessful. (hint: make sure your oauth token is set in self.config/self.config.py).', 'error')
        sys.exit()
from sys import argv
from src.bot import *
from src.config.config import *

bot = PartyMachine(config).sock()
我的irc.py在这里:

'socket_buffer_size': 1024
def get_irc_socket_object(self):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.settimeout(10)

    self.sock = sock

    try:
        sock.connect((self.config['server'], self.config['port']))
    except:
        pp('Cannot connect to server (%s:%s).' % (self.config['server'], self.config['port']), 'error')
        sys.exit()

    sock.settimeout(None)
def sock_send(sock, send, self):
    sock.send('USER %s\r\n' % self.config['username'], sock.encode('utf-8'), send.encode('utf-8'))
    sock.send('PASS %s\r\n' % self.config['oauth_password'])
    sock.send('NICK %s\r\n' % self.config['username'])

    if self.check_login_status(sock.recv(1024)):
        pp('Login successful.')
    else:
        pp('Login unsuccessful. (hint: make sure your oauth token is set in self.config/self.config.py).', 'error')
        sys.exit()
from sys import argv
from src.bot import *
from src.config.config import *

bot = PartyMachine(config).sock()
我的service.py在这里:

'socket_buffer_size': 1024
def get_irc_socket_object(self):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.settimeout(10)

    self.sock = sock

    try:
        sock.connect((self.config['server'], self.config['port']))
    except:
        pp('Cannot connect to server (%s:%s).' % (self.config['server'], self.config['port']), 'error')
        sys.exit()

    sock.settimeout(None)
def sock_send(sock, send, self):
    sock.send('USER %s\r\n' % self.config['username'], sock.encode('utf-8'), send.encode('utf-8'))
    sock.send('PASS %s\r\n' % self.config['oauth_password'])
    sock.send('NICK %s\r\n' % self.config['username'])

    if self.check_login_status(sock.recv(1024)):
        pp('Login successful.')
    else:
        pp('Login unsuccessful. (hint: make sure your oauth token is set in self.config/self.config.py).', 'error')
        sys.exit()
from sys import argv
from src.bot import *
from src.config.config import *

bot = PartyMachine(config).sock()

由于“
AttributeError'nonetype'对象没有属性'recv'
”而一直失败。这怎么可能

您的
get\u irc\u socket\u对象(self)
可能是问题所在。您可以通过以下行调用它:
self.socket=self.irc.get\u irc\u socket\u object()
。这意味着python希望函数
get\u irc\u socket\u object(self)
返回一个socket对象,但您不返回任何东西(您只需编写
self.sock=sock
,它不会做任何事情,因为您在剩下的代码中使用了
self.socket
)。因此,函数返回
none
,因此现在
self.socket
将其作为其值。因此,当您调用recv时,您会收到错误消息


另外,请清理变量名。Sock在代码中使用得太频繁,因此很难理解。

您的
get\u irc\u socket\u对象(self)
可能是问题所在。您可以通过以下行调用它:
self.socket=self.irc.get\u irc\u socket\u object()
。这意味着python希望函数
get\u irc\u socket\u object(self)
返回一个socket对象,但您不返回任何东西(您只需编写
self.sock=sock
,它不会做任何事情,因为您在剩下的代码中使用了
self.socket
)。因此,函数返回
none
,因此现在
self.socket
将其作为其值。因此,当您调用recv时,您会收到错误消息


另外,请清理变量名。Sock在您的代码中使用得太频繁,因此很难理解。

请发布异常的完整跟踪,并指出引用的代码行。您使用的名称
Sock
太多了。每个标识符只有一件事。
sock
在哪里定义?@Bim请注意修复Python问题中的格式。在某些情况下,您可能会无意中修复实际问题。在本例中,您所做的缩进更改可能不正确。@glibdud确实很抱歉。请发布异常的完整跟踪,并指出引用了哪行代码。您使用名称
sock
处理的内容太多。每个标识符只有一件事。
sock
在哪里定义?@Bim请注意修复Python问题中的格式。在某些情况下,您可能会无意中修复实际问题。在本例中,您所做的缩进更改可能不正确。@glibdud确实很抱歉。