Область и списки классов Python

Я все еще довольно плохо знаком с Python, и мой опыт работы с OO происходит от Java. Итак, у меня есть некоторый код, написанный на Python, который действует очень необычно для меня, учитывая следующий код:

class MyClass():
        mylist = []
        mynum = 0

        def __init__(self):
                # populate list with some value.
                self.mylist.append("Hey!")
                # increment mynum.

                self.mynum += 1

a = MyClass()

print a.mylist
print a.mynum

b = MyClass()

print b.mylist
print b.mynum

Выполнение этого приводит к следующему выводу:

['Hey!']
1
['Hey!', 'Hey!']
1

Ясно, что я ожидал бы, что переменные класса приведут к одинаковым точным данным и одинаковому точному выводу ... Кажется, что я нигде не могу найти, что отличает список от, скажем, строки или числа, почему список ссылаться на тот же список из первого экземпляра в последующих? Очевидно, я, вероятно, неправильно понимаю какую-то механику области действия или механику создания списка.

Ответы на вопрос(2)

Ваш ответ на вопрос