class Animal:
x = {}
y = 0
def __init__(self):
pass
animal1 = Animal()
animal2 = Animal()
animal1.x['num'] = 14
animal1.y = 14
print(animal2.x)
print(animal2.y)
Выход:
{'num': 14
0
Почему словарь рассматривается как переменная класса, а целое число уникально для каждого экземпляра? Я все еще новичок в объектах и классах. Я просто возился с вещами и заметил это.
Я ожидал, что оба останутся неизменными.
[code]class Animal: x = {} y = 0 def __init__(self): pass
animal1 = Animal() animal2 = Animal()
animal1.x['num'] = 14 animal1.y = 14
print(animal2.x) print(animal2.y) [/code] Выход: {'num': 14 0 Почему словарь рассматривается как переменная класса, а целое число уникально для каждого экземпляра? Я все еще новичок в объектах и классах. Я просто возился с вещами и заметил это. Я ожидал, что оба останутся неизменными.
Следующие два листинга кода по отдельности обращаются к нефинальной переменной экземпляра класса и к нефинальной локальной переменной. Первый вариант не вызывал никаких предупреждений/ошибок, а второй вызывал. По моему мнению, они оба вызовут...
Следующие два листинга кода по отдельности обращаются к нефинальной переменной экземпляра класса и к нефинальной локальной переменной. Первый вариант не вызывал никаких предупреждений/ошибок, а второй вызывал. По моему мнению, они оба вызовут...
Я пытаюсь получить поведение, в котором метод экземпляра детского класса запускается в качестве ответа на атрибут экземпляра родителя, обновляется. Дочерний класс может наследовать от родителей, если это единственный способ сделать это. Мне известно...