You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/introducao-classes-metodos-python-basico.rst
+29-3Lines changed: 29 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,11 +14,11 @@ Eu não sou a melhor pessoa do mundo para explicar este assunto, mas vou tentar
14
14
15
15
Mais informações sobre classes e métodos podem ser encontradas nos links abaixo. Veja os exemplos em `https://github.com/rg3915/python-classes-metodos <https://github.com/rg3915/python-classes-metodos/tree/master/pythonBasico>`_.
16
16
17
-
> Este artigo foi atualizado em 23 de Maio de 2018.
17
+
> Este artigo foi atualizado em 26 de Maio de 2018.
18
18
19
19
PS: *Considere a sintaxe para Python 3*.
20
20
21
-
Segundo a documentação do `Python <https://docs.python.org/3/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 instância** de uma classe. Ou seja, uma representação da classe. Por exemplo, Regis é uma instância de uma classe chamada Pessoa, mas a Pessoa é a classe que o representa de uma forma genérica.
21
+
Segundo a documentação do `Python <https://docs.python.org/3/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 instância** de uma classe. Ou seja, uma representação da classe. Por exemplo, Regis é uma instância de uma classe chamada Pessoa, mas a Pessoa é a classe que o representa de uma forma genérica. Se você criar uma outra classe chamada Fabio, esse objeto também será uma instancia da classe Pessoa.
22
22
23
23
Na sua sintaxe mais elementar definimos uma classe conforme abaixo:
24
24
@@ -55,7 +55,6 @@ Juntando os dois temos:
55
55
56
56
A primeira pergunta que você vai ter é o porque do ``self`` em ``metodo``. A resposta curta é, todo metodo criado dentro de uma classe deve definir como primeiro parametro o ``self``. Para a resposta longa, por favor, leia a excelente explicação que o Pedro Werneck fez: `O porquê do self explícito em Python <http://archive.is/cX2mq>`_
57
57
58
-
59
58
A segunda pergunta é: para que serve o ``pass``?
60
59
61
60
A resposta é que, em Python, ao contrario de várias outras liguagens de programação, os blocos de código **NÃO** são definidos com os caracteres ``{`` e ``}``, mas sim com indentação e o caractere ``:``. Devido a esse fato, python necessitava de algo para explicitar quando se quer definir um bloco vazio. O ``pass`` foi criado exatamente para explicitar essa situação.
@@ -75,6 +74,33 @@ Um exemplo de uma função vazia feita em linguagem C e a mesma função vazia f
75
74
76
75
Importante: Note que para nome de **classes** usamos *PalavrasComeçandoPorMaiúscula* (isso tambem é conhecido como "`CapitalizeWords <http://pep8.org/#descriptive-naming-styles>`_") 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>`_.
77
76
77
+
78
+
Exemplo 0 - Pessoa
79
+
------------------
80
+
81
+
No exemplo mencionado no começo desse post o código mais simples seria o seguinte:
82
+
83
+
.. code-block:: python
84
+
85
+
classPessoa(object):
86
+
87
+
def__init__(self, nome):
88
+
self.nome = nome
89
+
90
+
def__str__(self):
91
+
returnself.nome
92
+
93
+
94
+
regis = Pessoa('Regis')
95
+
print(regis)
96
+
fabio = Pessoa('Fabio')
97
+
print(fabio)
98
+
99
+
Note que ``regis`` é uma instância da classe ``Pessoa``, e ``fabio`` é uma outra instância. Ou seja, temos dois **objetos**: ``regis`` e ``fabio``.
100
+
101
+
Os dois métodos serão explicados no próximo exemplo.
0 commit comments