【问题标题】:Missing 1 required positional argument: 'self' missing缺少 1 个必需的位置参数:缺少“自我”
【发布时间】:2018-10-08 01:58:31
【问题描述】:

我发现了几个 Stackoverflow 帖子,人们遇到了同样的问题,但似乎无法以令人满意的方式实施建议的修复,以便 python 编译我的脚本。

我知道它希望将 self 传递到数据库中,但不明白我将从哪里得到它,因为我的 main.py 中的 self 包含错误的上下文。

我有我的主类,我想在其中调用数据库类并从内部执行一个函数。

main.py

class Main:
    def __init__(self):
        self.db = Database
        self.db.createConnection()

数据库.py

class Database:
    def __init__(self):
            #some setup here

    def createConnection(self):
            #Create connection code here

当我运行它时,出现以下错误。

TypeError: createConnection() missing 1 required positional argument: 'self'

【问题讨论】:

  • 在班级Main 中将self.db = Database 更改为self.db = Database()
  • 就像施了魔法一样,这奏效了。谢谢。

标签: python python-3.x python-2.7


【解决方案1】:

您希望将Database 的实例分配给self.db,而不是分配Database 类本身。加括号调用Database并实例化:

self.db = Database()

【讨论】:

    猜你喜欢
    • 2014-09-13
    • 1970-01-01
    • 2019-10-10
    • 2017-03-27
    • 2019-11-12
    • 2019-12-23
    • 2021-02-01
    • 2020-11-15
    相关资源
    最近更新 更多