Paepoi » Python Tips » Python CLass
Python CLass
最終更新日 2019.03.31
自作クラスで for
#!/usr/bin/env python3 class Test(): def __init__(self, end): self.end = end def __getitem__(self, n): # for を終わらせたい時は IndexError 例外を送る if n >= self.end: raise IndexError return n + 1 t = Test(7) try: for n in t: print(n, end=',') except Exception as e: print('IndexError がココに来ることはない') print('done') '''output 1,2,3,4,5,6,7,done '''
自作クラスで with
#!/usr/bin/env python3 ''' __init__ 処理が終わると __enter__ を自動実行します __enter__ で self を戻すと as で指定した変数に格納される with を抜けると __exit__ を自動実行 ''' class Message(): def __init__(self): print('init') def __enter__(self): print('enter') return self def __exit__(self, *excinfo): print('exit') def run(self): print('run') with Message() as msg: msg.run() print('done') '''output init enter run exit done '''
Copyright(C) sasakima-nao All rights reserved 2002 --- 2024.