Zie hier het volgende stukje pyhton code:
Het begon als een poging Conway's Game of Life te simuleren. Hoe of wat ik dat wil is even niet relevant, maar het helpt misschien de variablenames te plaatsen. Ik heb er voor de vraag alle onnodigheden uitgesloopt.
Als ik dit stukje code uitvoer dan print hij de volgende list:
In plaats van wat ik verwacht:
Waarom gebeurt dit? Bouw ik buiten mijn begrip om een soort dependancy in in de verschillende sublists? Heb ik iets gemist in python classes 101 en het gedrag van de self parameter?
Ik breek er al een paar uur mijn hoofd over maar ik kom er niet uit...
Het begon als een poging Conway's Game of Life te simuleren. Hoe of wat ik dat wil is even niet relevant, maar het helpt misschien de variablenames te plaatsen. Ik heb er voor de vraag alle onnodigheden uitgesloopt.
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| import random class world: #een world-class die (nog) niet veel om het lijf heeft. 2 variabelen en een functie. def __init__(self, x_axis, y_axis): self.x = x_axis self.y = y_axis def grid(self): newWorld = [[0]*self.x]*self.y newWorld[2][2] = 4 print newWorld myworld = world(4,4) myworld.grid() |
Als ik dit stukje code uitvoer dan print hij de volgende list:
code:
1
| [[0, 0, 4, 0], [0, 0, 4, 0], [0, 0, 4, 0], [0, 0, 4, 0]] |
In plaats van wat ik verwacht:
code:
1
| [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 4, 0], [0, 0, 0, 0]] |
Waarom gebeurt dit? Bouw ik buiten mijn begrip om een soort dependancy in in de verschillende sublists? Heb ik iets gemist in python classes 101 en het gedrag van de self parameter?
Ik breek er al een paar uur mijn hoofd over maar ik kom er niet uit...