【问题标题】:What can I type for self parameter?我可以为 self 参数输入什么?
【发布时间】:2022-06-15 20:59:30
【问题描述】:

我为我的应用创建了一个数据库模块,但是当我提供用户名和密码变量时,它返回了

TypeError: Database._userlogin() 缺少 1 个必需的位置参数:'self'

我的功能

类方法

我如何使用它

【问题讨论】:

  • 如果方法在一个类中,那么您不需要提供self 参数,它会自动提供。如果不是(鉴于上述情况没有发生,我认为这里是真的)那么该参数不需要在函数签名中。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。
  • 类中的方法,是的。我的想法和你说的一样。另一方面,当我将鼠标悬停在自我签名上时,会弹出一个信息并显示“(参数)自我:Self@Database”

标签: python mysql python-3.x database


【解决方案1】:

而不是调用

DataBaseClient._user_login(username=username, password=password)

你需要初始化你的类,然后调用方法

client = DataBaseClient(...)
client._user_login(username=username, password=password)

由于这是一个私有方法名,它应该只能被这个类中的其他方法调用。在这种情况下,您使用

def method_needing_login(self):
    self._user_login(self.username, self.password)

【讨论】:

  • 我以前试过这个。它返回“AttributeError:'Database'对象没有属性'cursor'”
猜你喜欢
  • 2015-09-30
  • 2019-05-24
  • 2010-10-28
  • 1970-01-01
  • 2016-08-19
  • 2022-08-20
  • 2015-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多