缺少 1 个必需的位置参数:'self'

2023-12-01

这是我的代码:

class Email_Stuff():
    def __init__(self):
        self.emailaddr = None
        self.recipaddr = None
        self.EmailUser = None
        self.EmailPass = None
    def From_Email(self):
        self.emailaddr = turtle.textinput("Your Email", "What is your email address?")
    def To_Email(self):
        self.recipaddr = turtle.textinput("Client Email", "What is your client's email address?")
    def Email_Username(self):
        self.EmailUser = turtle.textinput("Your Email Username", "What is your email username?")
    def Email_Password(self):
        self.EmailPass = turtle.textinput("Your Email Password", "What is your email Password?")
    def Send_Email(self):
        print (self.emailaddr) #these are here for me to see if it is the right input
        print(self.recipaddr)
        print(self.EmailUser)
        print(self.EmailPass)
        import smtplib
        server = smtplib.SMTP('smtp.gmail.com', 587)
        server.login((self.EmailUser),(self.EmailPass))
        self.message = "Python Test Email"
        server.sendmail(self.emailaddr,self.recipaddr,self.message)

我有一个连接到 Email_Stuff.From_Email 的按钮和一个连接到 Email_Stuff.From_Email 等的按钮...

每当我按下按钮打开海龟窗口时,都会出现以下错误:

Exception in Tkinter callback
Traceback (most recent call last):
Fileline "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/tkinter/__init__.py", 1475, in __call__
return self.func(*args)
TypeError: From_Email() missing 1 required positional argument: 'self'

但是如果我从 From_Email 和 To_Email 等中取出 self。

class Email_Stuff():
    def __init__(self):
        self.emailaddr = None
        self.recipaddr = None
        self.EmailUser = None
        self.EmailPass = None
    def From_Email():
        self.emailaddr = turtle.textinput("Your Email", "What is your email address?")
    def To_Email():
        self.recipaddr = turtle.textinput("Client Email", "What is your client's email address?")
    def Email_Username():
        self.EmailUser = turtle.textinput("Your Email Username", "What is your email username?")
    def Email_Password():
        self.EmailPass = turtle.textinput("Your Email Password", "What is your email Password?")
    def Send_Email(self):
        print (self.emailaddr) #these are here for me to see if it is the right input
        print(self.recipaddr)
        print(self.EmailUser)
        print(self.EmailPass)
        import smtplib
        server = smtplib.SMTP('smtp.gmail.com', 587)
        server.login((self.EmailUser),(self.EmailPass))
        self.message = "Python Test Email"
        server.sendmail(self.emailaddr,self.recipaddr,self.message)

我收到此错误消息(这不是全部):

    self.emailaddr = turtle.textinput("Your Email", "What is your email address?")
    NameError: global name 'self' is not defined

这是按钮代码:

Email_Button = Button(root, text='Enter Your Email', command=Email_Stuff.From_Email)
Email_Button.pack()
Email_Button.place(x=250,y=210)

对于这么长的帖子我深表歉意


我认为您遇到了以下问题。如果您参加以下课程F:

class F():
     def foo(self):
         return 1

并尝试打电话F.foo(),您应该会收到与您所看到的类似的错误。

>>> F.foo()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unbound method foo() must be called with F instance as first argument (got nothing instead)

你需要做的就是打电话foo()在一个物体上F:

>>> f=F()
>>> f.foo()
1

我有一个连接到 Email_Stuff.From_Email 的按钮和一个按钮 连接到 Email_Stuff.From_Email 等...

您可能需要实例化一个对象Email_Stuff,然后调用yourobject.From_Email()。 (如果你的班级Email_Stuff还包含 GUI 按钮处理程序的东西,你可以调用self.From_Email()来自按钮处理程序)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

缺少 1 个必需的位置参数:'self' 的相关文章

随机推荐

  • WordPress l18n _x() 函数

    我正在尝试理解 WordPress 函数 x 根据 WordPress 网站的解释 在通过上下文消歧时使用 x 示例如下 if false commenttxt commenttxt x Comment noun if false trac
  • 用于求解线性丢番图方程的算法:ax + by = c

    我在这里寻找整数解决方案 我知道它有无数个从第一对解和 gcd a b c 导出的解 然而 我们怎样才能找到第一对解呢 有什么算法可以解决这个问题吗 Thanks Chan 请注意 并不总是有解决方案 事实上 只有一个解决方案 c是的倍数g
  • 关联类型的生命周期绑定被拒绝,尽管它看起来有效

    我有一段无法编译的代码 可以将其简化为以下代码片段 use std error Error use std convert TryFrom A trait that provides methods for parsing data int
  • 在 Bash 函数中使用 getopts

    我想用getopts在我在 bash profile 中定义的函数内 我的想法是我想传递一些标志给这个函数来改变它的行为 这是代码 function t echo getopts a OPTION echo OPTION echo OPTA
  • Tensorflow 2 中 tf.variable 的条件赋值

    对于 numpy 我们有 threshold 3 a np array 1 2 3 4 5 6 a a gt 3 199 a is 1 2 199 199 199 199 如何编写类似的代码tensorflow 2 b tf Variabl
  • Swift、SpriteKit:如何保存场景的整个进度

    我用 GameViewController swift 构建了一个快速游戏 import UIKit import SpriteKit class GameViewController UIViewController override f
  • XMLHttpRequest 上传进度未正确触发

    我正在尝试使用 XMLHttpRequest 发送文件 该文件正在工作 但我的进度监视器不工作 我尝试上传 700KB 文件和 3MB 文件 但遇到了同样的问题 progress 事件触发一次 并且仅触发一次 并且它表示 event loa
  • 如何使用 Google Cloud Vision API 读取一列文本

    我有下一个文档图像 当我尝试将图像转换为文本时 结果是这样的 Top Text Ref Rad Dte Ddo Ejecutivo 76520400300 Banco de Bogot Luz Adriana Bottom Text 问题是
  • Axios,向 Flask 发出 POST 请求

    我尝试使用 axios 向 Flask 服务器发送 POST var config headers Content Type application json Access Control Allow Origin axios post h
  • 静音 3D 触摸 快速操作

    由于新 iPhone 6s 6s 具有新的 3D Touch 功能 我正在尝试向我的应用程序添加一些主屏幕快速操作 我能够实现正常的力流 触摸主屏幕中的应用程序图标 gt 选择可用的快速操作之一 gt 在所有可能的应用程序状态下正确处理它
  • REPL、解释器和编译器之间的关系

    From 维基百科 REPL 通常被误称为 口译员 这是一个用词不当 很多 使用的编程语言 编译 包括字节码 编译 有 REPL 例如 Common Lisp 和 Python From 对此帖子的回复 交互式解释器使用 REPL 一个 口
  • 在 PHP 中动态访问类常量

    我希望能够动态查找常量的值 但使用变量不适用于语法 gives apple banana orange Fatal error Access to undeclared static property Food type 如何动态调用常量
  • 在 AppEngine Python 上使用 Reportlab 生成的 PDF 文档中添加图像文件的正确方法

    我正在尝试使用 App Engine Python 上的 reportlab 生成 PDF 报告 但我不知道如何正确附加图像 图像是静态的 这是我的项目的目录树 这就是我所做的 在 奇帕斯 py 获取图像 im Image static l
  • python脚本的CPU使用率

    是否可以检查简单脚本的CPU使用率 例如 如何获取打印 100 次 hello world 的 CPU 使用率 以百分比表示 目前我正在控制台中获取执行时间 方法是 time p python script py 如果你使用的是 UNIX
  • php 包含文件包含

    我正在一个网站上工作 并被要求包含位于我的 php 脚本上方的文件夹中的文件 问题是那些我被要求包含的 php 文件包含在其中 因此 在调用我的 php 页面时找不到它们引用的文件 处理这种情况的最佳方法是什么 将文件从文件夹 B 包含到文
  • 将客户端证书设置为 Java HTTP 连接中的请求属性?

    我有一个 Java 应用程序 它通过带有 SSL 的套接字连接到另一个 Java 应用程序 因此我的客户端 JVM 已经具有 Djavax net ssl keyStore and Djavax net ssl trustStore属性设置
  • 如何在延迟着色中从光照几何体的内部进行绘制

    我正在尝试使用 OpenGL 和 GLSL 实现延迟着色器 但我在处理光照几何时遇到了问题 这些是我正在采取的步骤 Bind multitarget framebuffer Render color position normal and
  • 访问 Service 中的请求范围 Bean

    我有一颗普通豆 它是 a Scope request 或 b 放置在HttpServletRequest通过过滤器 拦截器 如何在 a 中访问这个 bean Service哪一种是应用程序范围的单例 这样做的原因是 因为我有一个自定义对象R
  • 使用 Heroku 设置 Paperclip Amazon S3

    has attached file image storage gt s3 s3 credentials gt RAILS ROOT config s3 yml path gt style filename 我不知道什么 path gt s
  • 缺少 1 个必需的位置参数:'self'

    这是我的代码 class Email Stuff def init self self emailaddr None self recipaddr None self EmailUser None self EmailPass None d