morfizm (morfizm) wrote,
morfizm
morfizm

Tricky Python

Find a bad bug in this code (exercise; comments screened).

# collects tags from root node and all nodes reachable via item[attribute]=value edges,
# including all "None" edges
def evaluate_tree(self, item):
    result = self.tags
    if not self.leaf_node():
        if item.has_key(self.attribute):
            # item[] values can't be None
            for value in item[self.attribute]:
                if self.value_map.has_key(value):
                    result = result | self.value_map[value].evaluate_tree(item)
        if self.value_map.has_key(None):
            result = result | self.value_map[None].evaluate_tree(item)
    return result
(Syntax highligher used: http://tohtml.com/python/)
 
Upd.: I've updated, adding a couple of comments. The bug can be found without making tricky assumptions. Everything what's necessary is already in the code.

Upd2.: Comments are unscreened, the bug is explained here: http://morfizm.livejournal.com/472705.html
Tags: fun, in english, polls questions and social games, software development, work
Subscribe

  • Рабочие часы программиста

    Я тут поучаствовал в дискуссии "за что платит заказчик, когда платит программисту за работу", что сподвигло меня об этом задуматься и сформулировать…

  • Программисты - не боги?

    Мне знакомый сказал, что программисты - не боги. Это прям обидно, потому что с подразумеваемым квантором "всегда" это неверно. Программисты не боги…

  • Нагуглил свой же солюшен - wow!

    У меня, кажется, впервые в жизни опыт, когда по нетривиальному техническому вопросу я нагуглил свой собственный солюшен на Stackoverflow. Я купил…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 40 comments

  • Рабочие часы программиста

    Я тут поучаствовал в дискуссии "за что платит заказчик, когда платит программисту за работу", что сподвигло меня об этом задуматься и сформулировать…

  • Программисты - не боги?

    Мне знакомый сказал, что программисты - не боги. Это прям обидно, потому что с подразумеваемым квантором "всегда" это неверно. Программисты не боги…

  • Нагуглил свой же солюшен - wow!

    У меня, кажется, впервые в жизни опыт, когда по нетривиальному техническому вопросу я нагуглил свой собственный солюшен на Stackoverflow. Я купил…