作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
内部类的does方法需要一个自变量,但是已经给定了。主要思想是拥有一个类似模块的 Django 数据库模型。拥有一个包含用户数据的 User 类,并使用相同的类查询所有结果
class User:
def __init__(self, name, password):
self.name = name
self.password = sha256.encrypt(password)
def verify_password(self, psw):
return sha256.verify(self.password, psw)
def save(self):
cur.execute("INSERT INTO user (name, password) VALUES (?,?)", (self.name, self.password))
conn.commit()
class query(object):
def __init__(self):
self.data = cur.execute("SELECT * from user")
self.test = "test"
def first(self):
return self.data.fetchone()
def all(self):
return self.data.fetchall()
print(User.query.all())
我收到以下错误:
Traceback (most recent call last):
File "C:\Users\Zsolt\Desktop\api\model.py", line 34, in <module>
print(User.query.all())
TypeError: all() missing 1 required positional argument: 'self'
最佳答案
对于这个答案,我已将您的代码简化为更通用的片段:
class A:
class B:
def __init__(self):
print("query the database")
def first(self):
print("return the first match only")
def all(self):
print("return all matches")
<b>A.B.all()</b>
在突出显示的行中,您永远不会创建类 B 的实例!标记的行应该是 A.B().all()
,创建类型为 A.B
的对象,然后在该实例上调用方法。
注意:在您的代码段中,您需要将 User.query.all()
更改为 User.query().all()
。
关于Python内部类自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52679284/
我是一名优秀的程序员,十分优秀!