在Python中将内部函数的返回值传递给外部函数?

2024-09-30 01:28:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个功能:

1.SendMail(to, f_name, table )-它使用smtplib向收件人发送to邮件。代码段:

def SendMail(to, f_name, table )
        . 
        .
        .

        server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
        server.ehlo()
        server.login(gmail_user, gmail_password)
        print("Type 'Y' to send the mail! ")
        text = input(">")
        if text.lower() == "y":
            #print("Sending mail")
            server.sendmail(gmail_user, to, msg.as_string())
            print("Mail sent to "+ first_name)
            server.close()
            status = 'success'
            return status
        else:
            print("Mail NOT sent to " + first_name)
            status = 'fail'
            return status
  1. MailLoop():我有一个要向其发送定制邮件的人的列表。在

def MailLoop(): for owner in owner_list: to = 'somemailaddress' f_name = 'somefirstname' table = 'sometable' SendMail(to, f_name, table )

问题: 如何将每次迭代后从SendMail(to, f_name, table )函数返回的status值传递给外部MailLoop()函数? 我想将每个迭代的状态存储在一个列表中,这样我就可以在MailLoop()函数完成后看到并打印结果。在


Tags: to函数nameserverdefstatustable邮件
2条回答

从MailLoop返回列表:

def MailLoop():
    statuses = []
    for owner in owner_list:
        to = 'someemailaddress'
        f_name = 'somefirstname'
        table = 'sometable'
        statuses.append(SendMail(to, f_name, table))
    return statuses

为此,您可以将结果附加到列表或使其成为生成器。在

发电机示例:

def MailLoop():
    for owner in owner_list:
        to = 'somemailaddress'
        f_name = 'somefirstname'
        table = 'sometable'
        yield SendMail(to, f_name, table )

你可以称之为:

^{pr2}$

相关问题 更多 >

    热门问题