A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://mail.python.org/pipermail/python-dev/2005-December/058667.html below:

[Python-Dev] PEP 8 updates/clarifications

[Python-Dev] PEP 8 updates/clarifications [Python-Dev] PEP 8 updates/clarificationsGustavo J. A. M. Carneiro gjc at inescporto.pt
Tue Dec 13 12:13:12 CET 2005
Seg, 2005-12-12 às 22:38 -0600, skip at pobox.com escreveu:
>     Jim> I don't understand this argument.  Any mutating method or property
>     Jim> invoked by foreign code changes an object's state.  
> 
> Sure, but the only place I need to look for direct changes to the object's
> state are in the object's own code.
> 
>     Jim> If you provide a property or a pair if accessors that just sets and
>     Jim> gets an attribute with a slightly different name, that affords no
>     Jim> more protection than if people were setting the attribute directly.
> 
> Sure it does.  Suppose I get an exception in my code because some bit of
> code somewhere broke my assumptions about the values an attribute could
> assume.  If that attribute is only set by the object's own code, I can more
> easily debug it (stick in a print or an assert in the places where the
> attribute changes, etc).  If some external bit of code does something like
> 
>     self.foo = Foo()
>     ...
>     self.foo.attr = None
> 
> then later in Foo's code I have something like
> 
>     self.attr.callme()
> 
> The first thing I need to do is figure out who stomped on self.attr.

  I have never done this, but in theory you could replace attr with a
property whose getter uses sys._getframe() to log each modification of
the attribute, thus easily find out who did "self.foo.attr = None".
Almost like gdb's 'watch' command.

  Regards.

-- 
Gustavo J. A. M. Carneiro
<gjc at inescporto.pt> <gustavo at users.sourceforge.net>
The universe is always one step beyond logic.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Esta =?ISO-8859-1?Q?=E9?= uma parte de mensagem
	assinada digitalmente
Url : http://mail.python.org/pipermail/python-dev/attachments/20051213/16eeb7eb/attachment.pgp
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4