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 --- 2025.