fatiherikli

Bildiğiniz üzere Python konsolu üzerinde bir expression yazdığınızda size sonucunu döndürmekte. Eğer sonuç üzerinde bir işlem yapmak isterseniz onu bir değişkene atamanız gerekir normal şartlarda. Ama bazen işe yaramayabiliyor. Örneğin httplib kütüphanesindeki getresponse metodunu bir kere çağırmak durumundasınız.

Her neyse, python konsolunda en son evulate edilen değere _ (underscore) diyerek ulaşabilmekteyiz. Örnek;

>>> from myads.adserver.models import Advertisement
>>> Advertisement.objects.get(title='Adsense')
<Advertisement: Adsense>
>>> _
<Advertisement: Adsense>
>>> _.__class__
<class 'myads.adserver.models.Advertisement'>
>>> _.__class__
<class 'django.db.models.base.ModelBase'>
>>> _.__class__
<type 'type'>

Ayrıca IPython kullanıyorsanız aşağıdaki gibi bir kullanımlar da mümkün;

In [1]: 9 * 9
Out[1]: 81
In [2]: 9 * 9 * 9
Out[2]: 729
In [3]: 9 * 9 * 9 * 9
Out[3]: 6561
In [4]: _1 # ilk output
Out[4]: 81
In [5]: _2 # ikincisi
Out[5]: 729
In [6]: _3 # felan
Out[6]: 6561
In [7]: _oh # output history
Out[7]: {1: 81, 2: 729, 3: 6561, 4: 81, 5: 729, 6: 6561}
In[8]: __ # son output'tan onceki output
Out[8]: 6561
In[9]: _i1 # ilk girilen input'un unicode hali
Out[9]: u'9 * 9\n'
In [10]: _.__class__? # son output'un class'ının dokumantasyonu
Type:           type
Base Class:     <type 'type'>    
String Form:    <type 'unicode'>  
Namespace:      Interactive
Docstring:      bla bla bla...

Blog post'unun konusu IPython'a dönüşmeden burada keseyim.

Kolay gelsin :)

comments powered by Disqus