Код: Выделить всё
class Unit(object):
value = 10
class Archer(Unit):
pass
print Unit.value
print Archer.value
Archer.value = 5
print Unit.value
print Archer.value
10
10
10
5
и это нормально: Арчер наследует значение от Unit, но когда я меняю значение Archer, значение Unit остается нетронутым.
Теперь, если унаследовано значение представляет собой список, эффект мелкого копирования забастовки, и это также влияет на значение суперкласса:
Код: Выделить всё
class Unit(object):
listvalue = [10]
class Archer(Unit):
pass
print Unit.listvalue
print Archer.listvalue
Archer.listvalue[0] = 5
print Unit.listvalue
print Archer.listvalue
10
10
5
5< /p>
Есть ли способ «глубокого копирования» списка при наследовании его от суперкласса?
Подробнее здесь: https://stackoverflow.com/questions/248 ... e-e-g-list