開発環境
- 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 コメント:
コメントを投稿