<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><BR><DIV><DIV>On  12-Jan-2007, at 19:01 , Guido van Rossum wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">On 1/12/07, A.M. Kuchling &lt;<A href="mailto:amk@amk.ca">amk@amk.ca</A>&gt; wrote:</DIV> <BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Many types in Python are idempotent, so that int(1) works</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">as expected, float(2.34)==2.34, ''.join('hello')=='hello'</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">et cetera.</DIV> </BLOCKQUOTE><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I'm not sure I understand the use case; I don't believe I've ever felt</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">the need for this.</DIV></BLOCKQUOTE></DIV><DIV><P style="margin: 0.0px 0.0px 0.0px 0.0px"><BR class="khtml-block-placeholder"></P><P style="margin: 0.0px 0.0px 0.0px 0.0px">I have oodles of routines of the form</P><P style="margin: 0.0px 0.0px 0.0px 0.0px">def foo(thefile):</P><P style="margin: 0.0px 0.0px 0.0px 0.0px"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>if type(thefile) == str: thefile = open(thefile)</P><P style="margin: 0.0px 0.0px 0.0px 0.0px">or</P><P style="margin: 0.0px 0.0px 0.0px 0.0px"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>if not hasattr(thefile, 'read'): thefile = open(thefile)</P><P style="margin: 0.0px 0.0px 0.0px 0.0px">or something similar.</P><P style="margin: 0.0px 0.0px 0.0px 0.0px"><BR class="khtml-block-placeholder"></P><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">We should also consider the semantics in more detail. Should the seek</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">position be shared between the two objects? What about buffering?</DIV></BLOCKQUOTE><P style="margin: 0.0px 0.0px 0.0px 0.0px"><BR class="khtml-block-placeholder"></P><P style="margin: 0.0px 0.0px 0.0px 0.0px">That's definitely the hard part. But it's somewhat similar to "normal" mutable objects which are (I think always, right?) shallow copied when used in a constructor.</P><P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">--</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">Jack Jansen, &lt;Jack.Jansen@cwi.nl&gt;, <A href="http://www.cwi.nl/~jack">http://www.cwi.nl/~jack</A></FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">If I can't dance I don't want to be part of your revolution -- Emma Goldman</FONT></P> <BR class="Apple-interchange-newline"> </DIV><BR></BODY></HTML>