小编And*_*ndy的帖子

使用async def的Python [语法无效]

我正在尝试使用Python编写discord机器人,我遇到了这个机器人.

import discord
import asyncio
import random

client = discord.Client()
inEmail = input("Email:")
inPassword = input("Passwd:")

async def background_loop():
    await client.wait_until_ready()
    while not client.is_closed:
        channel = client.get_channel("************")
        messages = ["Hello!", "How are you doing?", "Testing!!"]
        await client.send_message(channel, random.choice(messages))
        await asyncio.sleep(120)

client.loop.create_task(background_loop())
client.run(inEmail, inPassword)
Run Code Online (Sandbox Code Playgroud)

然而,当我试图运行它时,我收到了SyntaxError:

File "1.py", line 7
  async def background_loop():
     ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

这是为什么?我测试之前从未收到过.

python syntax async-await discord discord.py

31
推荐指数
2
解决办法
5万
查看次数

当我有回退功能时,为什么 Solidity 建议我实现接收以太功能?

Solidity 最近的变化将回退函数格式从只是 function() 更改为 fallback(),这对于初学者来说非常好理解发生了什么,但是我有一个问题是关于编译器在我实现时给我的建议后备。

例如,我项目中的一段代码:

pragma solidity ^0.6.1;

contract payment{
    mapping(address => uint) _balance;

    fallback() payable external {
        _balance[msg.sender] += msg.value;
    }
}
Run Code Online (Sandbox Code Playgroud)

一切正常,但编译器建议:

Warning: This contract has a payable fallback function, but no receive ether function.
Consider adding a receive ether function.
Run Code Online (Sandbox Code Playgroud)

接收以太函数是什么意思?我试着查了一下,我能找到的很多例子只是另一个后备函数。

我使用的是 0.6.1+commit.e6f7d5a4 版本

solidity

7
推荐指数
2
解决办法
3444
查看次数

无需eval()直接将python字符串转换为字节

在处理未知字符串时使用eval()似乎很危险,这正是我项目的一部分正在做的。

对于我的项目,我有一个字符串,称为:

stringAsByte = "b'a'"
Run Code Online (Sandbox Code Playgroud)

我尝试执行以下操作来直接转换该字符串(不使用 eval):

byteRepresentation = str.encode(stringAsByte)
print(byteRepresentation) # prints b"b'a'"
Run Code Online (Sandbox Code Playgroud)

显然,这不起作用,所以不要这样做:

byteRepresentation = eval(stringAsByte) # Uses eval!

print(byteRepresentation) # prints b'a'
Run Code Online (Sandbox Code Playgroud)

还有另一种方法可以获得输出b'a'吗?

python byte eval python-3.x

2
推荐指数
1
解决办法
1082
查看次数

在 C++ 中模仿 C calloc 数组行为

C 中存在一些代码,用于calloc()创建有效的向量。它看起来像这样:

uint64_t *reverseOrder = (uint64_t *)calloc((size + 1), sizeof(uint64_t));
Run Code Online (Sandbox Code Playgroud)

我想用 C++ 语法和向量来模仿这种行为,以便它实际上具有相同的效果。我可以使用以下语法吗?

std::vector<uint64_t> reverseOrder(size + 1, 0);
Run Code Online (Sandbox Code Playgroud)

我知道calloc()实际上会遍历内存并将它们设置为 0,所以我想知道是否是这种情况。

c c++ constructor stdvector dynamic-memory-allocation

2
推荐指数
1
解决办法
115
查看次数

什么是二元熔丝滤波器?

不久前有一篇关于 XOR 过滤器的精彩文章:什么是 XOR 过滤器?

有人可以解释一下二元保险丝滤波器吗?它在结构上有何不同?做出这样选择的理由是什么?我试图阅读这篇论文,但迷失在二进制熔丝的具体细节中。它与异或相比如何?为什么它更小更快?

xor bloom-filter data-structures

1
推荐指数
1
解决办法
897
查看次数