尝试执行eval命令时出错[discord python]

时间:2020-11-01 11:37:39

标签: python discord discord.py discord.py-rewrite

我正在尝试发出一个eval命令,例如:用户键入“ !eval print('foo')”,然后机器人将在此发送给定代码的输出情况:“ foo ” 这是我的代码:

@ServerTimestamp
val date: Date? = null

它给了我这个错误:

<?php

$arrayPersonas = array(
    array('id'=> "0AB239", 'country' => 1, 'firstname' => "Ernest"  , 'surname' => "Austin", 'age' => 30),
    array('id'=> "12A179", 'country' => 0, 'firstname' => "Frances", 'surname' => "Poole", 'age' => 23),
    array('id'=> "1A90B9", 'country' => 1, 'firstname' => "Jacob", 'surname' => "Matthews", 'age' => 30),
    array('id'=> "227FF9", 'country' => 2, 'firstname' => "Mina", 'surname' => "Day", 'age' => 30),
    array('id'=> "2A6F39", 'country' => 3, 'firstname' => "Earl", 'surname' => "Mills", 'age' => 40),
    array('id'=> "325E79", 'country' => 4, 'firstname' => "Dennis", 'surname' => "Ray", 'age' => 33),
    array('id'=> "32E478", 'country' => 4, 'firstname' => "Alex", 'surname' => "Fery", 'age' => 50),
    array('id'=> "3A4DB9", 'country' => 5, 'firstname' => "Rhoda", 'surname' => "Conner", 'age' => 35));
    
$final_data = array();
function sortByOrder($a, $b) {
    return $a['age'] + $b['age'];
}

foreach( $arrayPersonas as $person){
    if(!empty($final_data[$person['country']])){
        foreach( $final_data[$person['country']] as $key => $value ){
            if( $final_data[$person['country']][$key]['age'] < $person['age'] ){
                unset($final_data[$person['country']][$key]);
                $final_data[$person['country']][] = $person;
            }else if( $final_data[$person['country']][$key]['age'] == $person['age'] ){
                $final_data[$person['country']][] = $person;
            }
        }
    }else{
        $final_data[$person['country']][] = $person;
        usort($final_data[$person['country']], 'sortByOrder');
    }
}
print_r($final_data);

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

使用您的实际代码,您正在重新定义内置方法eval。另外,您创建命令的方式是错误的:

from discord.ext import commands

bot = commands.Bot(command_prefix='!')

@bot.command(name='eval')
async def my_command(ctx, *, arg):
    result = eval(arg)
    await ctx.send(arg)

如果您想了解有关创建命令的更多信息,请访问以下链接至discord.py的commands扩展名:https://discordpy.readthedocs.io/en/latest/ext/commands/commands.html?highlight=commands