Александр Терентьев (aterentiev) wrote,
Александр Терентьев
aterentiev

A питоняшки в чате есть? :)

Не работают dictionary как я хочу, обьясните, а?!

from pprint import pprint
from dataclasses import dataclass

@dataclass
class C:
    item_C: int = 0

@dataclass
class B:
    item_B: int = 0
    Subs = {}

@dataclass
class A:
    item_A: int = 0
    Subs = {}

if __name__ == "__main__":
    VarA = A()
    VarA.item_A = 123

    VarB1 = B()
    VarB1.item_B = 1231
    VarA.Subs["B1"] = VarB1
    VarB2 = B()
    VarB2.item_B = 1232
    VarA.Subs["B2"] = VarB2
    VarB3 = B()
    VarB3.item_B = 1233    
    VarA.Subs["B3"] = VarB3

    VarC = C()
    VarC.item_C = 54321
    VarA.Subs["B2"].Subs["Subelement_for_B2"] = VarC

    print(VarA)
    for S in VarA.Subs:
        print(" ", S, "->", VarA.Subs[S])
        for S2 in VarA.Subs[S].Subs:
            print("   ", S2, "->", VarA.Subs[S].Subs[S2])


Вот это вот выдает:

A(item_A=123)
  B1 -> B(item_B=1231)
    Subelement_for_B2 -> C(item_C=54321)
  B2 -> B(item_B=1232)
    Subelement_for_B2 -> C(item_C=54321)
  B3 -> B(item_B=1233)
    Subelement_for_B2 -> C(item_C=54321)


Хотя по моей задумке должно добавлять С только в элемент В2
Tags: Программизмы
Subscribe

  • Просто цифры

    С февраля на примерно 1,7 миллиона новых ковид-инфекций около 6000 заболевших были к началу болезни полностью привиты.

  • Псто справедливости

    Не могу больше спокойно сидеть, когда в мире происходят несправедливости, пойду полежу. Во всем мире пишут про "разработанную фарма-гигантом…

  • Это какое-то сумасшествие

    Цена в соседнем Баухаусе. В евро.

  • 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 

  • 12 comments

  • Просто цифры

    С февраля на примерно 1,7 миллиона новых ковид-инфекций около 6000 заболевших были к началу болезни полностью привиты.

  • Псто справедливости

    Не могу больше спокойно сидеть, когда в мире происходят несправедливости, пойду полежу. Во всем мире пишут про "разработанную фарма-гигантом…

  • Это какое-то сумасшествие

    Цена в соседнем Баухаусе. В евро.