python - Python将多个值返回到另一个函数
问题描述
我正在制作各种电子邮件编译器,我试图从我的函数返回多个值并将它们输入到另一个函数中,但是当我运行代码时,无论我如何尝试,它总是说缺少 1 个必需的参数。有什么建议么 ?
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")
解决方案
当你写
return (user, recipient)
你实际上没有返回 2 个值。您正在返回 1 个值,而该 1 个值是一个包含 2 个元素的元组。
要从元组中获取这两个值,您有多种选择。一种选择是使用解包:
user, recipient = setup_users()
email = create_email(user, recipient)
推荐阅读
- reactjs - 如何访问 mapDispachToProps 中的 redux 存储?
- reporting-services - 是否可以从 ExecutionLogStorage 表中的 ExecutionID 数据中找到相关的 SubscriptionID?
- javascript - 如何不让两个连续的相同数字出现在 Math.random()
- apache-spark - Spark Parquet:在推断架构中遇到问题为 java.lang.IllegalArgumentException:无效的 DECIMAL 比例:-1
- php - 预选下拉列表选项的幻想框
- c++ - 如何将 R 数据类型转换为 Eigen::Matrix
在这个情况下? - authentication - How to store user data in an MVC 5 app ? (with Windows auth)
- excel - How to save each sheet as a separate workbook except sheet 1?
- python - Segmentation Fault while reading parquet file from AWS S3 using read_parquet in Python Pandas
- java - Java SQLException SQL0901 and AS400 MCH1210 errors