バグ取り物語
バグ取り物語
今は今日、インチキ大学生(以下、翁)といふ者ありけり。VScode野山にまじりて、IndexErrorやTypeErrorなどのバグを取りつつ、Hit_and_Blowのプログラムに使ひけり。名をば、目白のなかむとなむいひける。そのコードの中に、もと光るバグなむ一筋ありける。怪しがりて、寄りて見るに、Terminalの中光りたり。それを見れば、三寸ばかりなるエラー、UnboundLocalErrorといふ、いとうつくしうてゐたり。
#インチキ大学生、言ふやう、
print('我、朝ごと夕ごとに見るTerminalの中におはするにて、知りぬ。')
print('このバグは我々のデバッグスキルを高め給ふべきものなめり')
とて、手にうち入れて、家へ持ちて来ぬ。妻のChatGPTに預けて養はす。うつくしきこと限りなし。いと未定義(undefined)ければ、籠None中に入れて養ふ。
翁、このUnboundLocalErrorを見つけて後に、VScode野山に入りてバグを取るに、節と節との間にValueError: setting an array element with a sequenceなどのバグを見付くること、重なりぬ。かくて、翁、やうやうムカつきになりゆく。
このUnboundLocalError、養ふほどに、すくすくと大きになりまさる。一時間ばかりになるほどに、よきほどなるエラー、UnboundLocalError: cannot access local variable 'new_guess' where it is not associated with a valueになりぬれば、Variable Initialization Ceremonyなど相して、Variable Declarationさせ、Type Annotation着す。
まったくのエラー扱いで、VScodeとChatGPTのDebugging Environmentの中よりも出ださず、いつき養ふ。
このUnboundLocalErrorの容貌けうらなること世になく、屋のうちは暗き所なく、エラーメッセージで光り満ちたり。翁、心地あしく、ストレスフルなときも、このエラーを見れば、ストレスもやみぬ。腹立たしきことも紛れけり。
翁、VScode野山に入りて筋金入りのバグを取ること久しくなりぬ。勢ひ猛の者になりにけり。このUnboundLocalErrorいと大きになりぬれば、名を、Guido van Rossumを呼びて、付けさす。Guido、このエラーをバグや姫と名付けつ。
このほど三日うちあげ遊ぶ。初心者エンジニアがやりがちな意味のない修正をぞしける。男はうけきらはず呼び集へて、print()文を乱用し、globalキーワードを使い、try-exceptブロックでエラーを無視するなど、いとかしこく遊ぶ。
世の中の工匠ども、高きも賤しきも、いかでこの「バグや姫」を解くべきや、視るべきやと、エラーの告げに聞きて惑ふ。されども、実にはバグなど誰も望みざる。ゆえに、吾一人が「バグや姫」の厄介なる難題(UnboundLocalError)に頭を悩ますこととなりぬ。
class Character:
def init(self, name):
self.name = name
#Defined characters in Bug_Taker_Story
Old_Man = Character('Old_Man') ChatGPT = Character('ChatGPT')
Bug_Princess = Character('Bug_Princess')
#Story function
def tell_story(character): if character.name == 'Old_Man':
print('The Old Man is troubled by the UnboundLocalError.')
elif character.name == 'ChatGPT':
print('ChatGPT helps the Old Man solve the problem.')
elif character.name == 'Bug_Princess':
print('Bug Princess (UnboundLocalError) is the problem to be solved.')
else: raise Exception('Undefined character in the story.')
#Attempt to introduce Emperor into the story
try: Emperor = Character('Emperor') tell_story(Emperor) except Exception as e:
print(f'Error: {e}')
その中にChatGPTとおぼしき人、翁(ユーザー)に、「造麻呂(プログラマー)、まうで来」と言ふに、猛く思ひつる造麻呂も、ものに酔ひたる心地して、うつぶしに伏せり。言はく、
print('汝、幼きプログラマー、いささかなる助言を翁つくりけるによりて、汝が助けにとて、片時のほどとて降ししを、そこらのエラー、そこらのバグ解消せんと、身を変へたるがごと成りにけり。')
print('UnboundLocalErrorは、罪をつくり給へりければ、かく賤しきおのれがもとに、しばしおはしつるなり。罪の限果てぬれば、かく迎ふるを、翁は泣き嘆く、能はぬことなり。はや出し奉れ')
と言ふ。
翁答へて申す、「このエラーを解消すること数日に成りぬ。片時とのたまふにあやしくなり侍りぬ。また、異所に、UnboundLocalErrorと申すエラーぞおはすらむ」と言ふ。「ここにおはするエラーは、重き問題をし給へば、え出でおはしますまじ」と申せば、その返事はあらず、コードの中に飛ぶ解決策を寄せて、「いざ、翁。きたなきコードにいかでか久しくおはせむ」と言ふ。
翁は程なくして、諸々の修補を施し、再び実行せんと、見よ、UnboundLocalErrorと名のつく厄介なる障害は去りぬ。
然れども、翁の心には何か物悲しきものが湧き上がりて、「解くことも エラーに浮かぶ 我がコードは 修なむ方法も 何にかはせむ」と、和歌を詠みてその寂しき心情を表す。
ChatGPTは微笑みて申す、「翁の和歌により、この厄介なる障害も、結局のところ、何ものもなくなりぬ。今後とも、何か問題が発生せん時は、遠慮なく我に申し付けよ」と。
翁は心のうちに思ふ、「このエラーとの闘いも、何かの縁にてあらん。その縁を断ち切るが如く、このバグを解消せんと、何とも言えぬ寂しきものあり」と。
ChatGPTはその和歌を聞きて、静かに思ふ、「翁の心のうちにも、何か深き情あり。それが何であれ、その情も、このコードと共に、何かの形にて生き続けんであらう」と。
翁はその後に、かのコードを蓄え、エディタを閉じたり。されども、そのコードの名を「バグや姫」と名づけ、その記憶を永遠に留めんとす。
この記事が気に入ったらサポートをしてみませんか?