Admiral Patrick@dubvee.org to Programmer Humor@programming.devEnglish · 3 days agoexitdubvee.orgimagemessage-square23fedilinkarrow-up1486arrow-down15
arrow-up1481arrow-down1imageexitdubvee.orgAdmiral Patrick@dubvee.org to Programmer Humor@programming.devEnglish · 3 days agomessage-square23fedilink
minus-squareRapidCatLauncher@lemmy.calinkfedilinkEnglisharrow-up97·3 days agoThat 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·24 hours agoObviously they need to make exit’s repr method raise a SystemExit
minus-squaresquaresinger@lemmy.worldlinkfedilinkarrow-up1·23 hours agoDoes gtfo() then work as expected?
minus-squareMia@lemmy.dbzer0.comlinkfedilinkarrow-up4·2 days agoIt never occurred me to inspect this, nice find.
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 itsname
andeof
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!
Obviously they need to make
exit
’s repr method raise aSystemExit
Does gtfo() then work as expected?
It never occurred me to inspect this, nice find.