Differences between Class(Object) and Class(Dict) for dictionary usage?

Christopher Reimer christopher_reimer at icloud.com
Wed Apr 27 22:49:15 EDT 2016


On 4/27/2016 7:00 PM, Michael Torrie wrote:
> I am guessing that the reason you are storing state as it's own 
> dictionary is so that you can pass the state itself to the constructor? 

Someone said it was bad to store the object itself to file (my original 
plan) and that I should use a dictionary instead. This is my 
implementation of that idea. However, saving and loading data is far 
down my to do list.

> I know you've stated reasons for doing things the way you have, but 
> this self._state dict smells a bit funny, especially where you have 
> self._state = state, which means that several instances could have the 
> exact same state object at the same time and strikes me as mildly 
> un-pythonic and very confusing. "State" is what instances themselves 
> are supposed to track by design. I recommend you use this feature 
> rather than duplicating it with your own error-prone dict handling. 

So far the code is working as designed for new chess pieces (see below).

Thank you,

Chris R.

Rook('white', (1, 1)) @ 2106251742008
Knight('white', (1, 2)) @ 2106251755648
Bishop('white', (1, 3)) @ 2106251755760
Queen('white', (1, 4)) @ 2106251755872
King('white', (1, 5)) @ 2106251755984
Bishop('white', (1, 6)) @ 2106251756096
Knight('white', (1, 7)) @ 2106251756208
Rook('white', (1, 8)) @ 2106251756320
Pawn('white', (2, 1)) @ 2106251756432
Pawn('white', (2, 2)) @ 2106251756544
Pawn('white', (2, 3)) @ 2106251756656
Pawn('white', (2, 4)) @ 2106251756768
Pawn('white', (2, 5)) @ 2106251756880
Pawn('white', (2, 6)) @ 2106251756992
Pawn('white', (2, 7)) @ 2106251757104
Pawn('white', (2, 8)) @ 2106251757216
Pawn('black', (7, 1)) @ 2106251742288
Pawn('black', (7, 2)) @ 2106251742400
Pawn('black', (7, 3)) @ 2106251742512
Pawn('black', (7, 4)) @ 2106251742624
Pawn('black', (7, 5)) @ 2106251742736
Pawn('black', (7, 6)) @ 2106251742848
Pawn('black', (7, 7)) @ 2106251742960
Pawn('black', (7, 8)) @ 2106251743072
Rook('black', (8, 1)) @ 2106251743184
Knight('black', (8, 2)) @ 2106251742120
Bishop('black', (8, 3)) @ 2106251740608
Queen('black', (8, 4)) @ 2106251740496
King('black', (8, 5)) @ 2106251740832
Bishop('black', (8, 6)) @ 2106251741672
Knight('black', (8, 7)) @ 2106251741784
Rook('black', (8, 8)) @ 2106251741896




More information about the Python-list mailing list