บางครั้งฉันรันสคริปต์อีกครั้งภายในเซสชัน ipython เดียวกันและฉันได้รับความประหลาดใจที่ไม่ดีเมื่อตัวแปรไม่ได้ถูกล้าง ฉันจะล้างตัวแปรทั้งหมดได้อย่างไร และเป็นไปได้ไหมที่จะบังคับเรื่องนี้ทุกครั้งที่ฉันเรียกใช้คำสั่งเวทย์มนตร์% run?
ขอบคุณ
บางครั้งฉันรันสคริปต์อีกครั้งภายในเซสชัน ipython เดียวกันและฉันได้รับความประหลาดใจที่ไม่ดีเมื่อตัวแปรไม่ได้ถูกล้าง ฉันจะล้างตัวแปรทั้งหมดได้อย่างไร และเป็นไปได้ไหมที่จะบังคับเรื่องนี้ทุกครั้งที่ฉันเรียกใช้คำสั่งเวทย์มนตร์% run?
ขอบคุณ
คำตอบ:
%reset
ดูเหมือนว่าจะล้างตัวแปรที่กำหนดไว้
แก้ไขหลังจากความคิดเห็น @ErdemKAYA
หากต้องการลบตัวแปรให้ใช้คำสั่ง magic:
%reset_selective <regular_expression>
ตัวแปรที่จะถูกลบออกจาก namespace <regular_expression>
เป็นหนึ่งที่ตรงกับที่กำหนด
ดังนั้น
%reset_selective -f a
จะลบ ทุกa
ตัวแปรที่มี
แต่เพื่อลบเท่านั้นa
และไม่aa
:
In: a, aa = 1, 2
In: %reset_selective -f "^a$"
In: a # raise NameError
In: aa # returns 2
เห็นเช่นกัน %reset_selective?
ตัวอย่างเพิ่มเติมและhttps://regexone.com/สำหรับบทแนะนำ regex
ในการลบตัวแปรทั้งหมดในเนมสเปซให้ดูที่:
%reset?
name_variable
เป็นคำสั่ง regex และจะลบสิ่งที่ตรงกับมัน
ใน iPython คุณสามารถลบตัวแปรเดียวเช่นนี้
del x
ฉันเหนื่อย
%reset -f
และล้างตัวแปรและเนื้อหาทั้งหมดโดยไม่ต้องแจ้งให้ทราบ -f
ไม่ดำเนินการบังคับคำสั่งที่กำหนดโดยไม่ต้องแจ้งสำหรับใช่ / ไม่ใช่
หวังว่านี่จะช่วย .. :)
การเพิ่มบรรทัดต่อไปนี้ในสคริปต์ใหม่จะล้างตัวแปรทั้งหมดทุกครั้งที่คุณเรียกใช้สคริปต์อีกครั้ง:
from IPython import get_ipython
get_ipython().magic('reset -sf')
เพื่อให้ชีวิตง่ายขึ้นคุณสามารถเพิ่มพวกเขาไปยังแม่แบบเริ่มต้นของคุณ
ใน Spyder: Tools>Preferences>Editor>Edit template
นอกเหนือจากวิธีการที่กล่าวถึงก่อนหน้านี้ คุณยังสามารถใช้คำสั่ง del เพื่อลบตัวแปรหลายตัว
del variable1,variable2
ตัวเลือกออกจากในแผงควบคุมแผงจะล้างตัวแปรทั้งหมดในตัวสำรวจตัวแปร
*** โปรดทราบว่าคุณจะสูญเสียรหัสทั้งหมดที่คุณเรียกใช้ในแผงควบคุมคอนโซล