Python如何在def定义的函数内正确调用其他自定义函数
错误点梳理
- 函数参数匹配错误:
key_generator定义时声明了需要传入stringId参数,但末尾调用key_generator()时未传参,运行会直接抛出参数缺失异常key_generator内部调用message_sender()时,没有传入生成的id值,而message_sender定义要求必须传入stringId参数,也会触发参数错误
- 类型错误:
uuid.uuid4()返回的是UUID类实例,不能直接和字符串拼接,需要先转换为字符串格式 - 冗余参数:
key_generator的入参stringId没有实际作用,函数内部直接对该变量做了覆盖赋值
修正后的可运行代码
import os import socket import uuid from discord import Webhook, RequestsWebhookAdapter def key_generator(): # 将UUID对象转成字符串格式,移除了无用的入参 stringId = str(uuid.uuid4()) # 调用时传入生成的stringId message_sender(stringId) def message_sender(stringId): machine_name = '[' + socket.gethostname() + ']' webhook = Webhook.from_url("https://discord.com/api/webhooks/881232472644390933/MbAbLqd9G6eGYRO25zaIIrF6hJPNJCJWJm_9JTAiYxBeULevXNNaZJhQHcJSYPRcby89", adapter=RequestsWebhookAdapter()) # 用f-string简化字符串拼接逻辑 webhook.send(f'`|---{stringId}---| Key: |key|`') key_generator()
如果修正后仍无法发送消息,可检查本地网络是否能正常访问Discord接口、对应Webhook地址是否有效。
内容的提问来源于stack exchange,提问作者BroImcoolyCoder
相关产品推荐
相关产品推荐

