NextCord,为什么可以在 @tasks.loop中执行此操作?

发布于 2025-01-18 06:03:23 字数 504 浏览 0 评论 0原文

NextCord接受DateTime.Time的列表。Timein @tasks.loop中,但我需要更改列表。我试图这样做:

class peter_teste(commands.Cog):
    
    def __init__(self, bot):
        super().__init__()
        self.bot = bot
        self.peter.start()

    def peter_times(self):
        peter_hours = []
        #change the default list
        return peter_hours

    @tasks.loop(time=self.peter_times())
    async def peter(self):
        #do something

我在 @tasks.loop(time = self.peter_times())中遇到错误“未定义”错误

Nextcord accepts a list of datetime.time in @tasks.loop but i need to change the list. I tried to do this:

class peter_teste(commands.Cog):
    
    def __init__(self, bot):
        super().__init__()
        self.bot = bot
        self.peter.start()

    def peter_times(self):
        peter_hours = []
        #change the default list
        return peter_hours

    @tasks.loop(time=self.peter_times())
    async def peter(self):
        #do something

I get the error "self is not defined" in @tasks.loop(time=self.peter_times())

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月寒剑心 2025-01-25 06:03:23

要在装饰器中使用peter_times,它不能在班级中进行处理,因为在班级初始化之前对装饰器进行了处理,(So self在那里未定义) 。您可以在班级外设置这些时间,也可以在a tre_loop 并更改那里的间隔。

<用于在执行中间改变时间。

To use peter_times in the decorator, it can't a method of the class, as the decorators are processed before the class is initialized, (so self is not defined there). You can set up those times outside the class, or set them up in a before_loop and change the interval there.

change_interval can be used to change the times in the middle of execution.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文