我读过这个问题,但我不清楚。我这样定义我的类:
from sqlite3 import Connection, Cursor, Row, connect
class myclass(object):
def __init__(self,number):
co = connect('C:\\mydatabase.sqlite')
co.row_factory = Row
with connection:
cu = connection.cursor()
sql = '''SELECT * FROM mytable WHERE Number= {n} LIMIT 1'''.format(n = number)
cu.execute(sql)
for i in cu:
self.classattribute1 = i['Field1']
self.classattribute2 = i['Field2']
etc.
现在这可以正常工作,直到我想向我的类添加第三个属性,例如:
self.classattribute3 = self.classattribute1 + self.classattribute2
AttributeError: 'myclass' object has no attribute 'classattribute1'
SELECT
如果语句没有返回任何内容,如果数字不在数据库中,这将不起作用。
现在,当我调用 myclass 的实例时,我想做的是:
myclassinstance1 = myclass(100)
我想写一些类似的东西:
if cu.fetchone() == None:
#code to exit the method __init__ and to delete my class instance here
我不知道如何退出和删除我从内部调用的实例myclass
。我需要删除这些实例,因为我不想使用空类实例。
谢谢阅读。