On Thu, Jan 5, 2012 at 10:58 AM, Benjamin Root <[email protected]> wrote:
>
>
> On Thu, Jan 5, 2012 at 10:40 AM, Benjamin Root <[email protected]> wrote:
>>
>>
>>> At the very least, it would help in compartmentallizing all the possible
>>> drawing attributes that are common across all artists. Currently, I am
>>> envisioning using a defaultdict object (which was introduced in python 2.5)
>>> or subclassing from it. This might help in keeping compatibility with
>>> existing code. Subclassing would allow for modifying __get__ and __set__ to
>>> treat some elements like 'c' and 'color', 'lw' and 'linewidth' and so on as
>>> the same.
>
>
> Grrrr, in defaultdict(), the default_factory is called without arguments, so
> a factory can't be made to produce a default value for a given key, unless I
> resort to more hackary...
Might be better to explicitly use properties for this rather than
overriding dict:
class Style(object):
__slots__ = ('_lw')
def __init__(self, lw=None):
self.lw = lw
def _set_linewidth(self, lw):
self._lw = lw
def _get_linewidth(self):
return self._lw
lw = property(_get_linewidth, _set_linewidth)
linewidth = property(_get_linewidth, _set_linewidth)
Declaring slots allows you to keep the available attributes to those
explicity listed. This way, you can't set a random (misspelled?)
attribute and wonder for hours why style.edgcolor = 'blue' doesn't
work.
Ryan
--
Ryan May
Graduate Research Assistant
School of Meteorology
University of Oklahoma
------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual
desktops for less than the cost of PCs and save 60% on VDI infrastructure
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users