"Battleship" style game

Diez B. Roggisch deets at nospam.web.de
Wed Feb 25 16:32:53 EST 2009


Shawn Milochik schrieb:
> On Wed, Feb 25, 2009 at 3:15 PM, Diez B. Roggisch <deets at nospam.web.de> wrote:
> 
>> Not really. The point about properties is that you *can* make attribute
>> access trigger getter or setter code.
>>
>> But not that you do unless there is an actual reason for that. The way you
>> do it now is simply introducing clutter, without benefit. Your class would
>> be half the current size - without loss of functionality.
>>
>>
>>
>> Diez
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>>
> 
> It is true that it would be fewer lines of code with the same
> functionality, but it's better practice to have that framework in
> place so that any changes made in the future wouldn't break any of the
> code accessing my class. Obviously this is a fairly simple game that
> has a fixed set of rules, but I'm trying to cultivate good habits, and
> I don't think that doing it this way is anti-Pythonic.
> 
> Unless, of course, anything I said is wrong, which is always possible.
> If I'm missing a bigger-picture idea, I'd like to know about it.

You miss that Java has no properties, and thus forces prorgammers to 
wrap all attribute-access into getter/setters - just in case one wants 
something other than pure attribute access in some distant future to come.

In Python this is not needed. If something starts as an attribute, and 
then evolves so that it needs more complex logic when being accessed, 
you introduce a property of the same name.


Don't waste time coding for a future you can't even pretend to know. Do 
what is needed to solve the actual problem.


Diez



More information about the Python-list mailing list