Account Options

  1. Sign in
The old Google Groups will be going away soon.
Switch to the new Google Groups.
Google Groups Home
« Groups Home
Message from discussion Boo não é Python
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Claudio Berrondo  
View profile   Translate to Translated (View Original)
 More options May 27 2011, 3:19 am
From: Claudio Berrondo <claudio.berro...@gmail.com>
Date: Fri, 27 May 2011 04:19:09 -0300
Local: Fri, May 27 2011 3:19 am
Subject: Re: [dojo-rio] Boo não é Python

__init__ é disparado pelo "=" em
seu_obj = SuaClasse()       (ah! e tem o __new__ também, viu?)

assim como o __add__ é disparado pelo "+" em
seu_obj + seu_outro_obj

ou o __getitem__ é disparado pelos [] em
seu_obj[uma_chave]

ou o __hash__ de certa forma da mesma forma pelo [] em
qq_dic[seu_obj]

ou o __getattr__ pelo "." em
seu_obj.qq_atributo

ou o __nonzero__ por qualquer teste booleano como em
if seu_obj:

ou o __repr__ para que o seu objeto se represente quando você simplesmente
seu_obj

ou o __str__ quando você quer
print seu_obj

ou o __call__ para os "()" ou tornar o seu objeto "chamável"
seu_obj()

...

consistente.
__whatever__ remete ao protocolo (Javeiros chamariam "interface") padrão
para todo e qualquer objeto Python, builtin ou criado por você.
ou a todo operador (=,+,*...) ou operação com o seu objeto corresponde um
protocolo que pode ser implementado ou sobrescrito. e serão sempre os
__whatever__ ...

mais (ou tudo...) em:
http://docs.python.org/reference/datamodel.html#basic-customization

<http://docs.python.org/reference/datamodel.html#basic-customization>><>Cláudio
Berrondo
ps: sim, a convenção é usada ortogonalmente em outros pontos além do
protocolo dos objetos.

Em 26 de maio de 2011 19:48, Juan Lopes <m...@juanlopes.net> escreveu:

> Maneiro o post.

> Não sei exatamente como é definido no Boo, mas no Ruby, onde a sintaxe é
> parecida, você tem o seguinte<http://www.cse.buffalo.edu/~regan/cse305/RubyBNF.pdf>
> :

> STMT : STMT if EXPR
> STMT : EXPR
> EXPR : ARG
> ARG : PRIMARY
> PRIMARY : return [`(' [CALL_ARGS] `)']

> De qualquer forma, a coisa que mais me faz gostar de boo é não escrever
> "__init__", e sim "constructor".

> 2011/5/26 Rodolfo Carvalho <rhcarva...@gmail.com>

>> Transfomei um comentário que faria aqui em um post:

>> http://blog.rodolfocarvalho.net/2011/05/boo-nao-e-python.html

>> Este é pra lembrar que "as aparências enganam"...

>> E uma singelo alô ao nosso amigo Jonatas (acertei a grafia?) que talvez
>> tenha ficado meio perdido... Boo não é Python, não é Iron Python, e nem é
>> Ruby :P
>> *Boo é Boo* -- 'Cê 'táva certo Juan...

>> []'s

>> Rodolfo Carvalho

>> --
>> * Coding Dojo Rio *
>> dojo-rio@googlegroups.com
>> http://groups.google.com/group/dojo-rio
>> http://code.google.com/p/dojo-rio
>> http://dojorio.wordpress.com

> --
> Kind Regards,
> juanplopes@twitter <http://twitter.com/juanplopes>
>  <http://twitter.com/juanplopes>
> juanplopes@github <http://github.com/juanplopes>

>  --
> * Coding Dojo Rio *
> dojo-rio@googlegroups.com
> http://groups.google.com/group/dojo-rio
> http://code.google.com/p/dojo-rio
> http://dojorio.wordpress.com


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.