Skip to content

Commit 9eb2f7e

Browse files
committed
Merge pull request #109 from rg3915/pelican
artigo corrigido segundo PEP 8
2 parents 22d20a8 + df358b8 commit 9eb2f7e

File tree

1 file changed

+32
-20
lines changed

1 file changed

+32
-20
lines changed

content/introducao-classes-metodos-python-basico.rst

+32-20
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ Introdução a Classes e Métodos em Python (básico)
1212

1313
Eu não sou a melhor pessoa do mundo para explicar este assunto, mas eu escrevi este post para introduzir um tópico sobre *manipulação de banco de dados em SQLite3 com Python*, porém mais informações sobre classes e métodos podem ser encontradas nos links abaixo. Veja os exemplos em `https://github.com/rg3915/pythonDesktopApp <https://github.com/rg3915/pythonDesktopApp/tree/master/pythonBasico>`_.
1414

15+
PS: *Considere a sintaxe para Python 3*.
16+
1517
Segundo a documentação do `Python <https://docs.python.org/2/tutorial/classes.html#class-objects>`_ e o video `Python para Zumbis <https://www.youtube.com/watch?v=Zr_FiKbgRbU>`_, uma **classe** associa dados (**atributos**) e operações (**métodos**) numa só estrutura. Um **objeto** é uma variável cujo tipo é uma classe, ou seja, um **objeto é uma instância** de uma classe.
1618

1719
Na sua sintaxe mais elementar definimos uma classe conforme abaixo:
@@ -25,15 +27,15 @@ E um método (função) como:
2527

2628
.. code-block:: python
2729
28-
def Metodo(args):
30+
def metodo(args):
2931
pass
3032
3133
onde ``args`` são argumentos opcionais (parâmetros de entrada).
3234
A função ``Metodo`` pode retornar um valor de saída:
3335

3436
.. code-block:: python
3537
36-
def Metodo(args):
38+
def metodo(args):
3739
return pass
3840
3941
Juntando os dois temos:
@@ -43,11 +45,13 @@ Juntando os dois temos:
4345
class NomeDaClasse(object):
4446
atributo1 = None
4547
46-
def Metodo(args):
48+
def metodo(args):
4749
pass
4850
4951
``pass`` significa que você pode escrever o seu código no lugar. E ``atributo1`` é um atributo com valor inicial ``None`` (nada). Poderia ser ``atributo1 = 0``, por exemplo.
5052

53+
Importante: Note que para nome de **classes** usamos *PalavrasComeçandoPorMaiúscula* e para nome de **métodos (funções)** usamos *minúsculas_separadas_por_underscore*. Esta é uma convenção adotada pelos *Pythonistas* segundo o `Guia de Estilo <http://www.python.org.br/wiki/GuiaDeEstilo>`_ **PEP 8** - `Style Guide for Python Code <http://legacy.python.org/dev/peps/pep-0008/>`_ escrito por `Guido Van Rossum <http://www.python.org.br/wiki/GuidoVanRossum>`_.
54+
5155
Exemplo 1 - Calculadora simples
5256
-------------------------------
5357

@@ -92,13 +96,13 @@ Podemos rodar o Python no modo `modo interativo <https://docs.python.org/2/tutor
9296

9397
.. code-block:: python
9498
95-
$ python
99+
$ python3
96100
>>> from calculadora import Calculadora
97101
>>> c = Calculadora(128,2)
98-
>>> print 'Soma:', c.soma()
99-
>>> print 'Subtração:', c.subtrai()
100-
>>> print 'Multiplicação:', c.multiplica()
101-
>>> print 'Divisão:', c.divide()
102+
>>> print('Soma:', c.soma())
103+
>>> print('Subtração:', c.subtrai())
104+
>>> print('Multiplicação:', c.multiplica())
105+
>>> print('Divisão:', c.divide())
102106
103107
``c = Calculadora(128,2)`` é uma instância da classe com dois valores iniciais.
104108

@@ -109,7 +113,7 @@ O resultado é:
109113
>>> Soma: 130
110114
>>> Subtração: 126
111115
>>> Multiplicação: 256
112-
>>> Divisão: 64
116+
>>> Divisão: 64.0
113117
114118
Podemos redefinir os valores iniciais da seguinte forma:
115119

@@ -125,6 +129,10 @@ Resultado:
125129
126130
>>> 54
127131
132+
Importante: apesar de não fazer parte do escopo deste artigo, mas vejam este video `Operadores aritméticos e divisão no Python 2 e Python 3 <https://www.youtube.com/watch?v=_HZOAWOrXrQ>`_, explicando sobre a diferença no resultado da divisão nas duas versões do Python.
133+
134+
Vejam também este artigo sobre ponto flutuante: `Floating Point Arithmetic Issues and Limitations <https://docs.python.org/3.1/tutorial/floatingpoint.html>`_.
135+
128136
Exemplo 2 - Calculadora
129137
-----------------------
130138

@@ -151,13 +159,13 @@ Usando o **terminal no modo interativo** façamos:
151159

152160
.. code-block:: python
153161
154-
$ python
162+
$ python3
155163
>>> from calculadora2 import Calculadora
156164
>>> c = Calculadora()
157-
>>> print 'Soma:', c.soma(2,3)
158-
>>> print 'Subtração:', c.subtrai(2,10)
159-
>>> print 'Multiplicação:', c.multiplica(3,3)
160-
>>> print 'Divisão:', c.divide(128,2)
165+
>>> print('Soma:', c.soma(2,3))
166+
>>> print('Subtração:', c.subtrai(2,10))
167+
>>> print('Multiplicação:', c.multiplica(3,3))
168+
>>> print('Divisão:', c.divide(128,2))
161169
162170
A vantagem de colocar os parâmetros em cada método, é que podemos calcular qualquer valor sem ter que instanciar uma nova classe para cada valor diferente.
163171

@@ -201,19 +209,19 @@ Veremos o código na íntegra e depois os comentários.
201209
u1.save()
202210
u2 = User('Fabio', 20)
203211
u2.save()
204-
print User.all()
212+
print(User.all())
205213
206214
Você pode suprimir o final do código (a partir do ``if``) e importar a classe no terminal no `modo interativo <https://docs.python.org/2/tutorial/interpreter.html#interactive-mode>`_ veja este `video <https://www.youtube.com/watch?v=M1BAlDufqao>`_:
207215

208216
.. code-block:: python
209217
210-
$ python
218+
$ python3
211219
>>> from user import User
212220
>>> u1 = User('Regis', 35)
213221
>>> u1.save()
214222
>>> u2 = User('Fabio',20)
215223
>>> u2.save()
216-
>>> print User.all()
224+
>>> print(User.all())
217225
218226
Agora os comentários:
219227

@@ -298,15 +306,15 @@ Demonstração do uso da classe.
298306
if __name__ == '__main__':
299307
u1 = User('Regis', 35)
300308
u2 = User('Fabio',20)
301-
print User.all()
309+
print(User.all())
302310
303311
Note que nesse ``print`` a lista está vazia.
304312

305313
.. code-block:: python
306314
307315
u1.save()
308316
u2.save()
309-
print User.all()
317+
print(User.all())
310318
311319
Após chamar o ``save`` para as duas instâncias elas são guardadas e o método ``User.all()`` retorna essa lista.
312320

@@ -324,4 +332,8 @@ Mais informações em
324332

325333
`Python para Zumbis <https://www.youtube.com/watch?v=Zr_FiKbgRbU>`_
326334

327-
`João Reis <http://homepages.dcc.ufmg.br/~joaoreis/Site%20de%20tutoriais/aprendendopython/poo.html#init>`_
335+
`João Reis <http://homepages.dcc.ufmg.br/~joaoreis/Site%20de%20tutoriais/aprendendopython/poo.html#init>`_
336+
337+
`Operadores aritméticos e divisão no Python 2 e Python 3 <https://www.youtube.com/watch?v=_HZOAWOrXrQ>`_
338+
339+
`Floating Point Arithmetic Issues and Limitations <https://docs.python.org/3.1/tutorial/floatingpoint.html>`_

0 commit comments

Comments
 (0)