私はこの質問を読みましたが、それは私にはわかりません。クラスを次のように定義しました。
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.
これで、次のような3番目の属性をクラスに追加するまでは正常に機能します。
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
。空のクラスインスタンスを使用したくないので、これらのインスタンスを削除する必要があります。
読んでくれてありがとう。