開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
Head First Python (Paul Barry (著)、O'Reilly Media)のChapter 9.(The Context Management Protocol: Hooking Into Python's With Statement) の SHARPEN YOUR PENCIL(No. 6522) を取り組んでみる。
Relational Database は MySQL、MariaDBの代わりに SQLite を使用。
SHARPEN YOUR PENCIL(No. 6522)
コード(Emacs)
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import sqlite3 class UseDatabase: def __init__(self, dbconfig: dict) -> None: self.dbconfig = dbconfig def __enter__(self) -> None: self.conn = sqlite3.connect(self.dbconfig['database'] + '.sql') self.cursor = self.conn.cursor() return self.cursor def __exit__(self): pass if __name__ == '__main__': dbconfig = {'host': '127.0.0.1', 'user': 'vsearch', 'password': 'vsearchpasswd', 'database': 'vsearchlogDB'} ud = UseDatabase(dbconfig) print(ud.dbconfig) cursor = ud.__enter__() print(cursor)
入出力結果(Terminal, IPython)
$ ./DBcm.py {'host': '127.0.0.1', 'user': 'vsearch', 'password': 'vsearchpasswd', 'database': 'vsearchlogDB'} <sqlite3.Cursor object at 0x10a1d0810> $
0 コメント:
コメントを投稿