Как получается, что словарь двух разных объектов действует как один словарь?

У меня есть следующий код Python. Я ожидал, что словарь объекта node1 будет иметь значения «a», «b», а словарь объекта node2 будет иметь значения «c», «d». Но я получаю вывод - ([['a'], ['b'], ['c'], ['d']]) - в обоих случаях. Почему словари двух разных объектов (node1 и node2) действуют так, как будто существует только один единственный словарь?

class Node:
    Dictionary={}

def main():

    node1 = Node()
    node2 = Node()
    node1.Dictionary.setdefault(1, []).append('a')
    node1.Dictionary.setdefault(2, []).append('b')
    node2.Dictionary.setdefault(3, []).append('c')
    node2.Dictionary.setdefault(4, []).append('d')
    print("Node 1 ",node1.Dictionary.values())
    print("Node 2 ",node2.Dictionary.values())

main()

person Krishn Nand    schedule 12.01.2018    source источник
comment
stackoverflow .com/questions/8959097/   -  person MCMZL    schedule 12.01.2018
comment
переменные экземпляра предназначены для данных, уникальных для каждого экземпляра, а переменные класса предназначены для атрибутов и методов, общих для всех экземпляров класса docs.python.org/3/tutorial/   -  person srikavineehari    schedule 12.01.2018
comment
Большое спасибо за информацию. Помогли мне лучше понять Python. Изучив ООП, я думал, что Python будет вести себя так же, как и остальные языки.   -  person Krishn Nand    schedule 12.01.2018