Python将多个值返回到另一个函数中

Python将多个值返回到另一个函数中,python,Python,我正在制作一个电子邮件编译器,我试图从我的函数返回多个值,并将它们输入到另一个函数中,但当我运行代码时,无论我如何尝试,它总是说缺少一个必需的参数。有什么建议吗 from email.message import EmailMessage import getpass import smtplib import mimetypes import os.path def setup_users(): user = input("Please enter your email

我正在制作一个电子邮件编译器,我试图从我的函数返回多个值,并将它们输入到另一个函数中,但当我运行代码时,无论我如何尝试,它总是说缺少一个必需的参数。有什么建议吗

from email.message import EmailMessage
import getpass
import smtplib
import mimetypes
import os.path


def setup_users():
    user = input("Please enter your email ")
    print(f" this will be the senders email {user}")
    recipient = input("Please input senders ")
    print(f"this will be the recipients email {recipient}")
    return (user, recipient)


def load_smtp(sender, message):
    # sender = "sender@ example.com"
    print("connecting to smtp server will")
    mail_server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    mail_pass = getpass.getpass('Password? ')
    print(mail_pass)
    mail_server.login(sender, mail_pass)
    print("login sucessful")
    mail_server.send_message(message)
    print("email sent")
    mail_server.quit()

def create_email(user, recipient):
    sender = user
    recipient = recipient
    # setting to and from portion
    message = EmailMessage()
    message["From"] = sender
    message["to"] = recipient
    # setting up subject field
    message["Subject"] = f"Greetings this is from {sender} to {recipient}"
    body = """ Hey this is my first pythonic email program lets see how this works
    out! """
    # setting variable and putting body into a function
    message.set_content(body)
    return sender, message


if __name__ == "__main__":
    user = setup_users()
    email = create_email(user)
    print("gathering email data to complie")
    print("Starting program, will initiate load_smtp")
    smtp_server = load_smtp(email, user)
    print("sending email")

调用
create_email()
时,您需要添加
收件人

if __name__ == "__main__":
    user = setup_users()
    email = create_email(user,recipient)
    print("gathering email data to complie")
    print("Starting program, will initiate load_smtp")
    smtp_server = load_smtp(email, user)
    print("sending email")
当你写作时

return (user, recipient)
实际上,您没有返回2个值。返回1个值,该值是一个包含2个元素的元组

要从元组中获取这两个值,可以使用多种选项。一种选择是使用解包:

user, recipient = setup_users()
email = create_email(user, recipient)

大家好,欢迎来到StackOverflow!您介意编辑您的帖子并向我们展示错误的完整回溯吗?谢谢您的时间,但其他两个答案让我下一次发布时能够工作,我将确保添加回溯错误!再次感谢!!谢谢我是编程新手,读了这两个答案后,我觉得自己很愚蠢