如何在另一个类中使用我的类“数据库”?

2024-05-15 23:18:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python中的OOP比较新,并且尝试在另一个类中使用我的数据库类database。在

我该怎么做?在

class database(object):
    def connect_db(self):
        try:
            import sqlite3 as sqli
            connection = sqli.connect('pw.db')
            cur = connection.cursor()
        except:
            print("There was an error connecting to the database.")

我一直想这样做,但没用:

^{pr2}$

新错误:

  File "settings.py", line 30, in <module>
    c.create_account()
  File "settings.py", line 15, in create_account
    with cur:
AttributeError: __exit__

Tags: inpy数据库dbsettingsconnectcreateline
1条回答
网友
1楼 · 发布于 2024-05-15 23:18:34

你需要学习变量范围。db.connect_db()创建一个名为cur的游标连接,但不做任何操作;当该方法完成时,对象被销毁。特别是,它永远不会回到create_account方法。在

有一种简单的方法可以解决这个问题:将对象返回到方法,并在那里使用它。在

def connect_db(self):
    ...
    cur =  connection.cursor()
    return cur

...
def create_account(self):
    cur = db.connect_db()
    with cur:

或者更进一步:

^{pr2}$

注意,实际上,这两个都不应该是类。Python中的类只有在保持某种状态时才有用,而这在这里是不存在的。^{cd3>的函数应该是独立的。在

相关问题 更多 >