我想制作一个类型的机器人,它会自动加入我的 类 我已经尝试过但出现错误

I want to make a type bot which will join my classes automatically i have tried it but got the error

我想制作一个类型机器人,它会自动加入我的 类 我已经尝试过了,但出现了错误

正在导入所有需要的模块

import schedule
import webbrowser
import pyttsx3
import timetable
import time

加入Class加入函数类

def joinclass(classname):
    zoomlinks=timetable.zoomlinks
    webbrowser.open(zoomlinks[classname])
    pyttsx3.speak(f"joining {classname}")

星期一的加入代码类

schedule.every().monday.at("08:30").do(joinclass("Assembly"))
schedule.every().monday.at("08:40").do(joinclass("Hindi"))
schedule.every().monday.at("09:30").do(joinclass("Elit"))
schedule.every().monday.at("10:05").do(joinclass("Maths"))
schedule.every().monday.at("11:15").do(joinclass("History"))
schedule.every().monday.at("12:05").do(joinclass("PT"))

星期二的加入代码 类

schedule.every().tuesday.at("08:30").do(joinclass("Assembly"))
schedule.every().tuesday.at("08:40").do(joinclass("Maths"))
schedule.every().tuesday.at("09:30").do(joinclass("Geography"))
schedule.every().tuesday.at("10:05").do(joinclass("Biology"))
schedule.every().tuesday.at("11:15").do(joinclass("Physics"))
schedule.every().tuesday.at("12:05").do(joinclass("Gk"))

星期三的加入代码类

schedule.every().wednesday.at("08:30").do(joinclass("Assembly"))
schedule.every().wednesday.at("08:40").do(joinclass("Hindi"))
schedule.every().wednesday.at("09:30").do(joinclass("Elit"))
schedule.every().wednesday.at("10:05").do(joinclass("Telugu"))
schedule.every().wednesday.at("11:15").do(joinclass("Chemistry"))
schedule.every().wednesday.at("12:05").do(joinclass("Elang"))

周四的加入代码类

schedule.every().thursday.at("08:30").do(joinclass("Assembly"))
schedule.every().thursday.at("08:40").do(joinclass("Geography"))
schedule.every().thursday.at("09:30").do(joinclass("Maths"))
schedule.every().thursday.at("10:05").do(joinclass("Telugu"))
schedule.every().thursday.at("11:15").do(joinclass("Chemistry"))
schedule.every().thursday.at("12:05").do(joinclass("Elang"))

周五的加入代码类

schedule.every().thursday.at("08:30").do(joinclass("Assembly"))
schedule.every().thursday.at("08:40").do(joinclass("Elang"))
schedule.every().thursday.at("09:30").do(joinclass("Maths"))
schedule.every().thursday.at("10:05").do(joinclass("Computer"))
schedule.every().thursday.at("11:15").do(joinclass("History"))
schedule.every().thursday.at("12:05").do(joinclass("Biology"))

要运行加入待定类

while True:
    schedule.run_pending()
    time.sleep(1)

我收到这样的错误:-

self.job_func = functools.partial(job_func, *args, **kwargs) TypeError: the first argument must be callable

基本上,您是这样调用函数的:

schedule.every().monday.at("08:30").do(joinclass("Assembly"))
#                                      ^^^^^^^^^^^^^^^^^^^^^

什么时候应该这样称呼他们:

schedule.every().monday.at("08:30").do(joinclass, "Assembly")
#                                      ^^^^^^^^^^^^^^^^^^^^^

题外话,但您可以使用字典简化代码:

frame = {
    'monday': {
        '08:30': 'Assembly',
        '08:40': 'Hindi',
        '09:30': 'Elit',
        '10:05': 'Maths',
        '11:15': 'History',
        '12:05': 'PT',
    },
    'tuesday': {
        '08:30': 'Assembly',
        '08:40': 'Maths',
        '09:30': 'Geography',
        '10:05': 'Biology',
        '11:15': 'Physics',
        '12:05': 'Gk',
    },
    # Do the same for all the weekdays
}

然后,使用上面的字典 (frame),您可以 运行 使用此代码的所有时间表:

for weekday, frame_schedule in frame.items():
    for time, subject in frame_schedule.items():
        getattr(schedule.every(), weekday).at(time).do(joinclass, subject)