Chuỗi lệnh sau sẽ xóa mọi tên khỏi mô-đun hiện tại:
>>> import sys
>>> sys.modules[__name__].__dict__.clear()
Tôi nghi ngờ rằng bạn thực sự KHÔNG muốn làm điều này, bởi vì "mọi tên" bao gồm tất cả các cài đặt sẵn, vì vậy bạn không thể làm gì nhiều sau khi xóa sạch hoàn toàn như vậy. Hãy nhớ rằng, trong Python thực sự không có cái gọi là "biến" - có các đối tượng , thuộc nhiều loại (bao gồm mô-đun, hàm, lớp, số, chuỗi, ...), và có tên , liên kết với các đối tượng; những gì trình tự làm là xóa mọi tên khỏi một mô-đun (các đối tượng tương ứng sẽ biến mất nếu và chỉ khi mọi tham chiếu đến chúng vừa bị xóa).
Có thể bạn muốn chọn lọc hơn, nhưng thật khó để đoán chính xác ý của bạn trừ khi bạn muốn cụ thể hơn. Tuy nhiên, chỉ để đưa ra một ví dụ:
>>> import sys
>>> this = sys.modules[__name__]
>>> for n in dir():
... if n[0]!='_': delattr(this, n)
...
>>>
Chuỗi này chỉ để lại những cái tên riêng tư hoặc ma thuật, bao gồm cả __builtins__tên đặc biệt chứa tất cả các tên được tạo sẵn. Vì vậy, tích hợp sẵn vẫn hoạt động - ví dụ:
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'n']
>>>
Như bạn thấy, tên n(biến điều khiển trong đó for) cũng xảy ra xung quanh (vì nó được liên kết lại trong formệnh đề mọi lúc mọi nơi), vì vậy, có thể tốt hơn nếu đặt tên cho biến điều khiển đó _, chẳng hạn, để hiển thị rõ ràng "nó đặc biệt "(ngoài ra, trong trình thông dịch tương tác, tên _vẫn được liên kết lại sau mỗi biểu thức hoàn chỉnh được nhập tại dấu nhắc, với giá trị của biểu thức đó, vì vậy nó sẽ không tồn tại lâu ;-).
Dù sao, một khi bạn đã xác định chính xác những gì nó là bạn muốn làm, nó không phải là khó để định nghĩa một hàm cho mục đích này và đặt nó trong tập tin khởi động của bạn (nếu bạn muốn nó chỉ trong phiên tương tác) hoặc tập tin trang web tùy chỉnh ( nếu bạn muốn nó trong mọi tập lệnh).