คุณสามารถแก้ไขได้
ลิงก์PYTHONSTARTUPไปยังไฟล์ python ดังต่อไปนี้
# Make exit work as expected
type(exit).__repr__ = type(exit).__call__
มันทำงานอย่างไร
บรรทัดคำสั่ง python เป็น read-assess-print-loop ซึ่งก็คือเมื่อคุณพิมพ์ข้อความมันจะอ่านข้อความนั้นประเมินมันและพิมพ์ผลลัพธ์ในที่สุด
เมื่อคุณพิมพ์exit()มันประเมินเป็นวัตถุชนิดที่site.Quitterเรียกได้และเรียกใช้__call__ฟังก์ชั่นซึ่งออกจากระบบ เมื่อคุณพิมพ์exitมันประเมินเป็นวัตถุ callable เดียวกันโดยไม่ต้องเรียกมันวัตถุจะถูกพิมพ์ซึ่งจะเปิดสาย__repr__บนวัตถุ
เราสามารถใช้ประโยชน์จากนี้โดยการเชื่อมโยง__repr__ไป__call__และทำให้ได้รับพฤติกรรมที่คาดหวังของการออกจากระบบได้เมื่อเราพิมพ์exitโดยไม่ต้องวงเล็บ
()ณ สิ้น ... มิฉะนั้นมันอาจจะเป็นตัวแปร ... หรือวัตถุบางชนิด ...