<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Coisas bizarras de Python</title>
	<atom:link href="http://log4dev.com/2008/06/10/coisas-bizarras-de-python/feed/" rel="self" type="application/rss+xml" />
	<link>http://log4dev.com/2008/06/10/coisas-bizarras-de-python/</link>
	<description></description>
	<lastBuildDate>Wed, 03 Mar 2010 22:38:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Pegadinha com closures (ilustrado em Python) &#124; Alice and Bob in Cryptoland</title>
		<link>http://log4dev.com/2008/06/10/coisas-bizarras-de-python/comment-page-1/#comment-597</link>
		<dc:creator>Pegadinha com closures (ilustrado em Python) &#124; Alice and Bob in Cryptoland</dc:creator>
		<pubDate>Thu, 17 Jul 2008 18:34:38 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/06/10/coisas-bizarras-de-python/#comment-597</guid>
		<description>&lt;p&gt;[...] possui instâncias diferentes para cada closure diferente criada. Outra alternativa é utilizar um &#8220;recurso&#8221; polêmico do Python, que é o fato de que os valores de parâmetros com valores padrão são avaliados quando a [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] possui instâncias diferentes para cada closure diferente criada. Outra alternativa é utilizar um &#8220;recurso&#8221; polêmico do Python, que é o fato de que os valores de parâmetros com valores padrão são avaliados quando a [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Bruno</title>
		<link>http://log4dev.com/2008/06/10/coisas-bizarras-de-python/comment-page-1/#comment-584</link>
		<dc:creator>Bruno</dc:creator>
		<pubDate>Thu, 26 Jun 2008 00:41:25 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/06/10/coisas-bizarras-de-python/#comment-584</guid>
		<description>&lt;p&gt;&lt;em&gt;Wise words&lt;/em&gt; Marcos!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p><em>Wise words</em> Marcos!</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Marcos Silva Pereira</title>
		<link>http://log4dev.com/2008/06/10/coisas-bizarras-de-python/comment-page-1/#comment-586</link>
		<dc:creator>Marcos Silva Pereira</dc:creator>
		<pubDate>Tue, 24 Jun 2008 22:34:13 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/06/10/coisas-bizarras-de-python/#comment-586</guid>
		<description>&lt;p&gt;Comportamento estranho mesmo. Para mim esse caso corrompe o principio da menor surpresa:
http://en.wikipedia.org/wiki/Principle&lt;em&gt;of&lt;/em&gt;least_astonishment&lt;/p&gt;

&lt;p&gt;O que eu esperaria normalmente é que &quot;lista&quot; tivesse o mesmo ciclo de vida de qualquer outra variável dentro da função.&lt;/p&gt;

&lt;p&gt;Abraço...&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Comportamento estranho mesmo. Para mim esse caso corrompe o principio da menor surpresa:
<a href="http://en.wikipedia.org/wiki/Principle" rel="nofollow">http://en.wikipedia.org/wiki/Principle</a><em>of</em>least_astonishment</p>

<p>O que eu esperaria normalmente é que &#8220;lista&#8221; tivesse o mesmo ciclo de vida de qualquer outra variável dentro da função.</p>

<p>Abraço&#8230;</p>]]></content:encoded>
	</item>
	<item>
		<title>By: nosklo</title>
		<link>http://log4dev.com/2008/06/10/coisas-bizarras-de-python/comment-page-1/#comment-577</link>
		<dc:creator>nosklo</dc:creator>
		<pubDate>Thu, 19 Jun 2008 21:58:14 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/06/10/coisas-bizarras-de-python/#comment-577</guid>
		<description>&lt;p&gt;Normal!
Voce pode até acessar a lista depois, ela não é garbage collected pq fica armazenada na funçao:&lt;/p&gt;

&lt;p&gt;&gt;&gt;&gt; def inclui(valor, lista=[]):
...     lista.append(valor)
...
&gt;&gt;&gt; inclui(1)
&gt;&gt;&gt; inclui(2)
...
&gt;&gt;&gt; print inclui.func_defaults
([1, 2],)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Normal!
Voce pode até acessar a lista depois, ela não é garbage collected pq fica armazenada na funçao:</p>

<p>&gt;&gt;&gt; def inclui(valor, lista=[]):
&#8230;     lista.append(valor)
&#8230;
&gt;&gt;&gt; inclui(1)
&gt;&gt;&gt; inclui(2)
&#8230;
&gt;&gt;&gt; print inclui.func_defaults
([1, 2],)</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Miguel</title>
		<link>http://log4dev.com/2008/06/10/coisas-bizarras-de-python/comment-page-1/#comment-576</link>
		<dc:creator>Miguel</dc:creator>
		<pubDate>Mon, 16 Jun 2008 17:57:01 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/06/10/coisas-bizarras-de-python/#comment-576</guid>
		<description>&lt;p&gt;Bruno, é bem isso mesmo: ao carregar o codigo, python faz o bind do codigo da função para uma variavel, e ja processa a lista de parametros, criando todas as instancias necessarias.....&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Bruno, é bem isso mesmo: ao carregar o codigo, python faz o bind do codigo da função para uma variavel, e ja processa a lista de parametros, criando todas as instancias necessarias&#8230;..</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Bruno</title>
		<link>http://log4dev.com/2008/06/10/coisas-bizarras-de-python/comment-page-1/#comment-598</link>
		<dc:creator>Bruno</dc:creator>
		<pubDate>Mon, 16 Jun 2008 17:53:52 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/06/10/coisas-bizarras-de-python/#comment-598</guid>
		<description>&lt;p&gt;Meu mega chute agora: a origem do problema deve ser o fato de que o python &quot;processa&quot; a função como se fosse um objeto e o param default deve ser apenas um atributo (como seria em um obj qq) dai a preservação de seu estado entre as invocações. :)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Meu mega chute agora: a origem do problema deve ser o fato de que o python &#8220;processa&#8221; a função como se fosse um objeto e o param default deve ser apenas um atributo (como seria em um obj qq) dai a preservação de seu estado entre as invocações. <img src='http://log4dev.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>By: Python: Anomalias &#171; A r k 4 n</title>
		<link>http://log4dev.com/2008/06/10/coisas-bizarras-de-python/comment-page-1/#comment-596</link>
		<dc:creator>Python: Anomalias &#171; A r k 4 n</dc:creator>
		<pubDate>Mon, 16 Jun 2008 11:56:51 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/06/10/coisas-bizarras-de-python/#comment-596</guid>
		<description>&lt;p&gt;[...] http://log4dev.com/2008/06/10/coisas-bizarras-de-python/ [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://log4dev.com/2008/06/10/coisas-bizarras-de-python/" rel="nofollow">http://log4dev.com/2008/06/10/coisas-bizarras-de-python/</a> [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Tiago Albineli Motta</title>
		<link>http://log4dev.com/2008/06/10/coisas-bizarras-de-python/comment-page-1/#comment-595</link>
		<dc:creator>Tiago Albineli Motta</dc:creator>
		<pubDate>Wed, 11 Jun 2008 17:37:41 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/06/10/coisas-bizarras-de-python/#comment-595</guid>
		<description>&lt;p&gt;Nossa! Pra uma pessoa começando em Python esse comportamento é um chute lá embaixo.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Nossa! Pra uma pessoa começando em Python esse comportamento é um chute lá embaixo.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Miguel</title>
		<link>http://log4dev.com/2008/06/10/coisas-bizarras-de-python/comment-page-1/#comment-594</link>
		<dc:creator>Miguel</dc:creator>
		<pubDate>Wed, 11 Jun 2008 17:09:01 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/06/10/coisas-bizarras-de-python/#comment-594</guid>
		<description>&lt;p&gt;Pedro,&lt;/p&gt;

&lt;p&gt;vendo o teu primeiro comentário, de fato a coisa parece ser menos ruim do que me pareceu no início. E de fato, como vc disse pra quem conhece Python bem, isso não é uma surpresa.&lt;/p&gt;

&lt;p&gt;Fato é que, para as situações que você citou como possibilidades para esta caracteristica de Python, eu prefiro uma aproximação usando OO, que tá aí justamente para encapsular este tipo de dados. E eu continuo achando que preferiria se a semantica de valor default fosse criado a cada vez, uma copia limpa, cujo escopo ficasse restrito àquela chamada. Gosto pessoal.&lt;/p&gt;

&lt;p&gt;Anyway, como eu mencionei no meu post, isto não é motivo algum para alguém deixar de utilizar a linguagem.  Não existe linguagem perfeita, existe a linguagem que se adapta melhor ao seu estilo e às suas necessidades de projeto, e em algum momento sempre temos que fazer algumas concessões.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Pedro,</p>

<p>vendo o teu primeiro comentário, de fato a coisa parece ser menos ruim do que me pareceu no início. E de fato, como vc disse pra quem conhece Python bem, isso não é uma surpresa.</p>

<p>Fato é que, para as situações que você citou como possibilidades para esta caracteristica de Python, eu prefiro uma aproximação usando OO, que tá aí justamente para encapsular este tipo de dados. E eu continuo achando que preferiria se a semantica de valor default fosse criado a cada vez, uma copia limpa, cujo escopo ficasse restrito àquela chamada. Gosto pessoal.</p>

<p>Anyway, como eu mencionei no meu post, isto não é motivo algum para alguém deixar de utilizar a linguagem.  Não existe linguagem perfeita, existe a linguagem que se adapta melhor ao seu estilo e às suas necessidades de projeto, e em algum momento sempre temos que fazer algumas concessões.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Pedro de Medeiros</title>
		<link>http://log4dev.com/2008/06/10/coisas-bizarras-de-python/comment-page-1/#comment-575</link>
		<dc:creator>Pedro de Medeiros</dc:creator>
		<pubDate>Wed, 11 Jun 2008 15:00:26 +0000</pubDate>
		<guid isPermaLink="false">http://log4dev.com/2008/06/10/coisas-bizarras-de-python/#comment-575</guid>
		<description>&lt;p&gt;De qualquer forma, a assinatura da função é processada (executada) apenas uma vez e a lista criada na assinatura é declarada e referenciada nessa única vez. Pra quem conhece Python bem, isso não é realmente nenhuma surpresa.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>De qualquer forma, a assinatura da função é processada (executada) apenas uma vez e a lista criada na assinatura é declarada e referenciada nessa única vez. Pra quem conhece Python bem, isso não é realmente nenhuma surpresa.</p>]]></content:encoded>
	</item>
</channel>
</rss>
