Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #107737
| Path | csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail |
|---|---|
| From | Christopher Reimer <christopher_reimer@icloud.com> |
| Newsgroups | comp.lang.python |
| Subject | Re: Differences between Class(Object) and Class(Dict) for dictionary usage? |
| Date | Wed, 27 Apr 2016 18:12:57 -0700 |
| Lines | 68 |
| Message-ID | <mailman.155.1461805991.32212.python-list@python.org> (permalink) |
| References | <57216399.1050702@icloud.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=utf-8; format=flowed |
| Content-Transfer-Encoding | 7bit |
| X-Trace | news.uni-berlin.de P86oxD00ts0NUnYvROnZYwf3+oZkwsfirs0AzTHtcIAQ== |
| Return-Path | <christopher_reimer@icloud.com> |
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| X-Spam-Status | OK 0.000 |
| X-Spam-Evidence | '*H*': 1.00; '*S*': 0.00; 'else:': 0.03; 'position,': 0.04; 'true,': 0.04; 'method.': 0.05; 'none:': 0.05; 'attributes': 0.07; 'constructor': 0.07; 'method,': 0.07; 'sanity': 0.07; "'name':": 0.09; '@property': 0.09; 'below).': 0.09; 'subclasses': 0.09; 'subject:Object': 0.09; 'stored': 0.10; 'def': 0.13; 'subject: \n ': 0.15; 'variables': 0.15; "'class':": 0.16; "'color':": 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; 'self._state': 0.16; 'subject:between': 0.16; 'subject:usage': 0.16; 'wrote:': 0.16; '(see': 0.20; 'color,': 0.22; 'code,': 0.23; "i've": 0.25; 'header:User-Agent:1': 0.26; 'chris': 0.26; 'checking': 0.27; 'pieces': 0.27; 'received:17': 0.27; "skip:' 10": 0.28; 'values': 0.28; 'dictionary': 0.29; 'raise': 0.29; 'code': 0.30; 'skip:_ 10': 0.32; 'implement': 0.32; 'received:10.0.0': 0.32; 'subject:) ': 0.32; 'class': 0.33; 'accessible': 0.33; 'received:10.0': 0.34; 'false': 0.35; 'saved': 0.35; 'loaded': 0.36; 'to:addr:python-list': 0.36; 'subject:?': 0.36; 'pm,': 0.36; 'subject:: ': 0.37; 'received:10': 0.37; 'feedback': 0.38; 'thank': 0.38; 'mean': 0.38; 'rather': 0.39; 'to:addr:python.org': 0.40; 'header:MIME-version:1': 0.60; 'skip:n 10': 0.62; 'different': 0.63; 'benefit': 0.66; 'decided': 0.66; 'subject:Class': 0.91 |
| X-Proofpoint-Virus-Version | vendor=fsecure engine=2.50.10432:,, definitions=2016-04-27_14:,, signatures=0 |
| X-Proofpoint-Spam-Details | rule=notspam policy=default score=0 spamscore=0 clxscore=1015 suspectscore=1 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1510270003 definitions=main-1604280014 |
| User-Agent | Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 |
| DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=icloud.com; s=4d515a; t=1461805982; bh=dwGSGBOK5h2XabJCIUtaG/ysBYwzlS8pcqbfRj8ZaxI=; h=To:From:Subject:Message-id:Date:MIME-version:Content-type; b=okn6z+nAuT4wKFcVOYy4Iep8/1moK8yXZuvbna+dMPUIycDZqg7c57Dfxf96q2v3n mF6gQvRs8VDD2nOgYUQAw6/LOYm3V3QS/jJZn2/ri/kk1cVuAt5OutYudiYxGfr1my WFAQg8uzNKtzZ6vlV9gf3zwqHr2zECcAkCqQy5JhNTL44s94BVSnnTjzVzWJ9fGkaw MsC2/LSbg1bkAhUn+ePjYLqjBDwTZonduttPvaYlnupJkLL21ObVwh2ccByp25QFUa os1VXhCxnmohYv3KVSv+SXXKfQp3hFzISZfTcCcy5k8+KlXffOIQ3fCiIMYNRwNpVT vFMbd8wkPA98A== |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.22 |
| Precedence | list |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-list/> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| X-Mailman-Original-Message-ID | <57216399.1050702@icloud.com> |
| Xref | csiph.com comp.lang.python:107737 |
Show key headers only | View raw
On 4/26/2016 8:56 PM, Random832 wrote:
> what exactly do you mean by property decorators? If you're just
> accessing them in a dictionary what's the benefit over having the
> values be simple attributes rather than properties?
After considering the feedback I got for sanity checking my code, I've
decided to simplify the base class for the chess pieces (see code
below). All the variables are stored inside a dictionary with most
values accessible through properties. A custom dictionary can be loaded
through the constructor and or saved out through the fetch_state method.
The subclasses only have to implement the is_move_valid method, which is
different for each type of chess piece.
Thank you,
Chris R.
class Piece(object):
def __init__(self, color, position, state=None):
if state is None:
self._state = {
'class': self.__class__.__name__,
'color': color,
'first_move': True,
'initial_position': position,
'move_count': 0,
'name': color.title() + ' ' + self.__class__.__name__,
'notation': color.title()[:1] +
self.__class__.__name__[:1],
'position': position
}
else:
self._state = state
@property
def color(self):
return self._state['color']
def fetch_state(self):
return self._state
def is_move_valid(self, new_position, board_state):
raise NotImplementedError
@property
def move_count(self):
return self._state['move_count']
@property
def name(self):
return self._state['name']
@property
def notation(self):
return self._state['notation']
@property
def position(self):
return self._state['position']
@position.setter
def position(self, position):
self._state['position'] = position
if self._state['first_move']:
self._state['first_move'] = False
self._state['move_count'] += 1
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: Differences between Class(Object) and Class(Dict) for dictionary usage? Christopher Reimer <christopher_reimer@icloud.com> - 2016-04-27 18:12 -0700
csiph-web