<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Le 05/02/2012 16:33, yoav glazner a écrit :
<blockquote
cite="mid:CAJ78kjMiHSY437dbyXvwhwas5x0k_vz-2=WvU0RM39YMmaxLBg@mail.gmail.com"
type="cite">
<div class="moz-text-html" lang="x-western">
<div dir="ltr">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
</div>
>>> class proxy:<br>
... def __init__(self, orig):<br>
... self._orig = orig<br>
... def __getitem__(self, attr):<br>
... return getattr(self._orig,attr)<br>
...<br>
>>> class A:<br>
... def __getattr__(self, name):<br>
... return len(name)<br>
...<br>
>>> a = A()<br>
>>> proxy(a)['hello']<br>
5<br>
>>><br>
<br>
Extending the proxy class to include setting, deleting,
and various<br>
corner cases, is left as an exercise for the reader :-)</blockquote>
<div><br>
</div>
<div>>>> proxy(a).keys()</div>
<div>?!?</div>
</div>
</div>
</div>
</blockquote>
<br>
Hi,<br>
<br>
+1 on extending vars(). I like this idea much more than adding
syntax.<br>
<br>
In this case, proxy(a).key() would be based on dir(a) (or something
similar) and have the same (documented) limitations. I think this is
acceptable, and the proxy object is still useful.<br>
<br>
Regards,<br>
<pre class="moz-signature" cols="72">--
Simon Sapin</pre>
</body>
</html>