如何在python中的另一个脚本中使用类中的函数对象?

时间:2017-12-07 13:58:09

标签: python

我正在尝试运行以下脚本来生成电子邮件通知:

class ecom_common_functions_class(sendmailobject):
    def __init__(self):
        count = 0

    def ecom_send_mail_without_attachement(self,email_sender_id,email_reciever_id,mail_body,mail_subj,server):
        print "INSIDE MAIL SENT FUNCTION"
        msg = MIMEMultipart()
        print "in function email_reciever_id =", email_reciever_id
        msg['From'] = email_sender_id
        msg['To'] = email_reciever_id
        msg['Subject'] = mail_subj
        body = mail_body
        msg.attach(MIMEText(body, 'html'))
        part = MIMEBase('application', 'octet-stream')
        encoders.encode_base64(part)
        server = smtplib.SMTP('localhost')
        text = msg.as_string()
        server.sendmail(email_sender_id, email_reciever_id, text)
        server.quit()

当我在另一个脚本中导入此函数时,我收到此错误:

Traceback (most recent call last):
  File "/ecom_data/US_full/binaries/NIS/aneesha/ecom_nis_validation_negative.py", line 10, in <module>
    import ecom_nis_common_functions
  File "/ecom_data/US_full/binaries/NIS/aneesha/ecom_nis_common_functions.py", line 32, in <module>
    class ecom_common_functions_class(sendmailobject):
NameError: name 'sendmailobject' is not defined

结果必须在电子邮件中打印为消息。

2 个答案:

答案 0 :(得分:1)

你必须从模块中导入该类,看起来你没有导入它,或者代码没有粘贴到它的整体中。

答案 1 :(得分:0)

class ecom_common_functions_class(sendmailobject):这一行意味着您的班级ecom_common_functions_class想要扩展另一个名为sendmailobject的班级。使用sendmailobject名称,这似乎不是类。

  

类名通常应使用CapWords约定。

您尚未导入sendmailobject或者不是class