On 01/05/2012 07:34 AM, Ryan May wrote:
> On Thu, Jan 5, 2012 at 10:58 AM, Benjamin Root<ben.r...@ou.edu>  wrote:
>>
>>
>> On Thu, Jan 5, 2012 at 10:40 AM, Benjamin Root<ben.r...@ou.edu>  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.

This seems useful, and may be OK for this application; but a little 
googling indicates that it is not really what __slots__ was intended 
for, it is at best controversial, and it should be used very sparingly 
and carefully.

Eric

>
> Ryan
>


------------------------------------------------------------------------------
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
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to