Admiral Patrick@dubvee.org to Programmer Humor@programming.devEnglish · 7 个月前exitdubvee.orgimagemessage-square25linkfedilinkarrow-up1496arrow-down15
arrow-up1491arrow-down1imageexitdubvee.orgAdmiral Patrick@dubvee.org to Programmer Humor@programming.devEnglish · 7 个月前message-square25linkfedilink
minus-squareRapidCatLauncher@lemmy.calinkfedilinkEnglisharrow-up96·7 个月前That just gave me the idea that it would be fun to inspect exit a little. Which led me down this path: >>> repr(exit) 'Use exit() or Ctrl-Z plus Return to exit' >>> dir(exit) [(...), 'eof', 'name'] >>> exit.eof, exit.name ('Ctrl-Z plus Return', 'exit') Okay, cool, the “Use exit() etc.” blurb appears because it’s the function’s repr, and the string is assembled from its name and eof properties. Now let’s try to make our own: >>> exit.__class__ <class '_sitebuiltins.Quitter'> >>> gtfo = exit.__class__() TypeError: Quitter.__init__() missing 2 required positional arguments: 'name' and 'eof' Oh Python, you shouldn’t have. >>> gtfo = exit.__class__("a big puff of smoke", "a sneaky skedaddle") >>> gtfo Use a big puff of smoke() or a sneaky skedaddle to exit Beauty!
minus-squarelengau@midwest.sociallinkfedilinkarrow-up2·6 个月前Obviously they need to make exit’s repr method raise a SystemExit
That just gave me the idea that it would be fun to inspect
exita little.Which led me down this path:
>>> repr(exit) 'Use exit() or Ctrl-Z plus Return to exit' >>> dir(exit) [(...), 'eof', 'name'] >>> exit.eof, exit.name ('Ctrl-Z plus Return', 'exit')Okay, cool, the “Use exit() etc.” blurb appears because it’s the function’s
repr, and the string is assembled from itsnameandeofproperties.Now let’s try to make our own:
>>> exit.__class__ <class '_sitebuiltins.Quitter'> >>> gtfo = exit.__class__() TypeError: Quitter.__init__() missing 2 required positional arguments: 'name' and 'eof'Oh Python, you shouldn’t have.
>>> gtfo = exit.__class__("a big puff of smoke", "a sneaky skedaddle") >>> gtfo Use a big puff of smoke() or a sneaky skedaddle to exitBeauty!
deleted by creator
Obviously they need to make
exit’s repr method raise aSystemExitDoes gtfo() then work as expected?
Yup
Nice!