IPython - การแคช IO
เซลล์อินพุตและเอาต์พุตบนคอนโซล IPython จะมีหมายเลขเพิ่มขึ้น ในบทนี้ให้เราดูรายละเอียดเกี่ยวกับการแคช IO ใน Python
ใน IPython อินพุตจะดึงข้อมูลโดยใช้ปุ่มลูกศรขึ้น นอกจากนี้อินพุตก่อนหน้าทั้งหมดจะถูกบันทึกและสามารถเรียกคืนได้ ตัวแปร_i, __iและ ___iเก็บรายการอินพุตสามรายการก่อนหน้านี้ไว้เสมอ นอกจากนี้In และ _inตัวแปรแสดงรายการอินพุตทั้งหมด เห็นได้ชัด_in[n]ดึงข้อมูลจากเซลล์อินพุตที่ n เซสชัน IPython ต่อไปนี้ช่วยให้คุณเข้าใจปรากฏการณ์นี้ -
In [1]: print ("Hello")
Hello
In [2]: 2+2
Out[2]: 4
In [3]: x = 10
In [4]: y = 2
In [5]: pow(x,y)
Out[5]: 100
In [6]: _iii, _ii, _i
Out[6]: ('x = 10', 'y = 2', 'pow(x,y)')
In [7]: In
Out[7]:
['',
'print ("Hello")',
'2+2',
'x = 10',
'y = 2',
'pow(x,y)',
'_iii, _ii, _i',
'In'
]
In [8]: In[5] 9. IPython — IO
Out[8]: 'pow(x,y)'
In [9]: _ih
Out[9]:
['',
'print ("Hello")',
'2+2',
'x = 10',
'y = 2',
'pow(x,y)',
'_iii, _ii, _i',
'In',
'In[5]',
'_ih'
]
In [11]: _ih[4]
Out[11]: 'y = 2'
In [12]: In[1:4]
Out[12]: ['print ("Hello")', '2+2', 'x=10']
ในทำนองเดียวกันขีดล่างเดี่ยวสองและสามทำหน้าที่เป็นตัวแปรในการจัดเก็บเอาต์พุตสามรายการก่อนหน้า นอกจากนี้Out และ _ohสร้างออบเจ็กต์พจนานุกรมของจำนวนเซลล์และผลลัพธ์ของเซลล์ที่ดำเนินการ (ไม่รวมคำสั่งการกำหนด) ในการดึงเนื้อหาของเซลล์เอาต์พุตเฉพาะให้ใช้Out[n] หรือ _oh[n]. คุณยังสามารถใช้การแบ่งส่วนเพื่อรับเซลล์เอาต์พุตภายในช่วง
In [1]: print ("Hello")
Hello
In [2]: 2+2
Out[2]: 4
In [3]: x = 10
In [4]: y = 3
In [5]: pow(x,y)
Out[5]: 1000
In [6]: ___, __, _
Out[6]: ('', 4, 1000)
In [7]: Out
Out[7]: {2: 4, 5: 1000, 6: ('', 4, 1000)}
In [8]: _oh
Out[8]: {2: 4, 5: 1000, 6: ('', 4, 1000)}
In [9]: _5
Out[9]: 1000
In [10]: Out[6]
Out[10]: ('', 4, 1000)