reo
Kasım 11, 2018, 12:10ös
1
With deyiminin nasıl çalıştığını biliyorum. Ancak çalışma mantığını anlamadım. Kendim kullanmaya çalıştım ama;
>>> class py:
... def close(self):
... print("Close çalıştırıldı")
... def __init__(self, param):
... pass
...
>>> with py("m"):
... print("işlemlerim")
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: __enter__
Ben bu with deyimini nasıl kullanabilirim?
Wyren
Kasım 11, 2018, 12:42ös
2
Bir kaynaktan bulduğum örnek kod:
class controlled_execution:
def __enter__(self):
#kodlar
return thing
def __exit__(self, type, value, traceback):
#kodlar
with controlled_execution() as thing:
#kodlar
Kaynak : http://effbot.org/zone/python-with-statement.htm
Düzenleme : Sanırsam with deyimini kullanırken belirlediğin sınıfta __enter__
belirlenmiş bir method olmalı.
1 Beğeni
__exit__
da olmalı diye biliyorum. __exit__
yazmayınca hata vermiyor mu acaba?
1 Beğeni
Wyren
Kasım 12, 2018, 3:01ös
4
with
deyimini sadece open()
ile kullandığımdan fazla bilmiyorum Oradaki hata mesajını okuyunca öyle olduğunu düşündüm. Sizin dediğiniz de doğru olabiliir.