前提・実現したいこと
PythonでMySQLとclassについて勉強中の初心者です。
コンストラクタでMySQLに接続し、デストラクタで切断するため、cとconnをグローバル変数で宣言しましたが、
恐らくデストラクタでstring型とみなされてしまい、エラーになっていると思われます。
グローバル変数の宣言の仕方の問題なのか、そもそもclassの考え方がおかしいのかよくわかりません。
発生している問題・エラーメッセージ
File "C:\Users\user\Desktop\MySQLClass.py", line *, in __del__ self.c.close() AttributeError: 'MySQL' object has no attribute 'c'
該当のソースコード
Python
1import MySQLdb 2 3class MySQL(): 4 5 global c 6 global conn 7 8 def __init__(self,user,passwd,host,port,dbname): 9 10 conn = MySQLdb.connect(user,passwd,port,host,dbname) 11 self.c = self.conn.cursor() 12 13 def __del__(self): 14 self.c.close() 15 self.conn.close() 16
そのエラーが発生したコードを載せたほうがいいと思います。