2

我有这段代码,我真的很好奇它为什么不起作用。问题在于k = discord.Server.get_member(j)它说

“TypeError:get_member() 缺少 1 个必需的位置参数:'user_id'”。

此代码使用discord.py

@client.event
async def on_message(message):
if message.content.startswith('/sendpm'):
    print(message.author)
    j = message.content.replace('/sendpm ', '')
    print(j)
    j = j.replace('@', '')
    j = j.replace('<', '')
    j = j.replace('>', '')
    j = j.replace('!', '')
    print(l)
    k = discord.Server.get_member(j) #problem is here
    await client.send_message(await client.start_private_message(k), spammsg)
    await client.send_message(message.channel, 'sent' + message.author.mention)
4

1 回答 1

2

此代码正在访问一个方法,discord.Server就好像它是一个静态方法一样:

k = discord.Server.get_member(j)

函数get_member定义为

def get_member(self, user_id):

它接受self作为第一个参数,因为它旨在在实例上调用,例如:

server = discord.Server()
server.get_member(user_id)

Server我不知道这是否是获取实例的正确方法。这个例子似乎有一种不同的方式来访问服务器实例:

@client.event
async def on_member_join(member):
    server = member.server
    fmt = 'Welcome {0.mention} to {1.name}!'
    await client.send_message(server, fmt.format(member, server))
于 2016-10-10T18:50:36.087 回答