From 0989f41159877da22ddbf919422eaf41c4562c07 Mon Sep 17 00:00:00 2001 From: Douglas Date: Mon, 18 May 2020 20:22:31 -0300 Subject: [PATCH 1/6] criada a classe Pessoa --- oo/__init__.py | 0 oo/pessoa.py | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 oo/__init__.py create mode 100644 oo/pessoa.py diff --git a/oo/__init__.py b/oo/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/oo/pessoa.py b/oo/pessoa.py new file mode 100644 index 000000000..e1da50e22 --- /dev/null +++ b/oo/pessoa.py @@ -0,0 +1,2 @@ +class Pessoa: + pass \ No newline at end of file From ac4b7cfee6a0e21e634886da86a2516e1776a2ef Mon Sep 17 00:00:00 2001 From: Douglas Date: Mon, 18 May 2020 20:37:42 -0300 Subject: [PATCH 2/6] =?UTF-8?q?Criando=20m=C3=A9todo=20comprimentar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index e1da50e22..58a41192c 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,2 +1,9 @@ class Pessoa: - pass \ No newline at end of file + def cumprimentar(self): + return f'Olá {id(self)}' + +if __name__ == '__main__': + p = Pessoa() + print(Pessoa.cumprimentar(p)) + print(id(p)) + print(p.cumprimentar()) #O jeito mais fácil de fazer. \ No newline at end of file From 935080bb8305afa64e9c81b962a629e921fe9ff5 Mon Sep 17 00:00:00 2001 From: Douglas Date: Mon, 18 May 2020 20:46:16 -0300 Subject: [PATCH 3/6] =?UTF-8?q?Criados=20atributos=20de=20inst=C3=A2ncia?= =?UTF-8?q?=20nome=20e=20idade?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 58a41192c..aa8bcc9b4 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,9 +1,17 @@ class Pessoa: + def __init__(self, nome = None, idade = 28): + self.idade = idade + self.nome = nome + def cumprimentar(self): return f'Olá {id(self)}' if __name__ == '__main__': - p = Pessoa() + p = Pessoa("Dodo") print(Pessoa.cumprimentar(p)) print(id(p)) - print(p.cumprimentar()) #O jeito mais fácil de fazer. \ No newline at end of file + print(p.cumprimentar()) #O jeito mais fácil de fazer. + print(p.nome) + p.nome = 'Douglas' + print(p.nome) + print(p.idade) \ No newline at end of file From ed792be315a47932bc7307eed4156c27ae8a90f5 Mon Sep 17 00:00:00 2001 From: Douglas Date: Fri, 22 May 2020 13:10:54 -0300 Subject: [PATCH 4/6] Criando atributo complexo filhos --- oo/pessoa.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index aa8bcc9b4..a544b3a9d 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,17 +1,20 @@ class Pessoa: - def __init__(self, nome = None, idade = 28): + def __init__(self, *filhos, nome = None, idade = 28): self.idade = idade self.nome = nome + self.filhos = list(filhos) def cumprimentar(self): return f'Olá {id(self)}' if __name__ == '__main__': - p = Pessoa("Dodo") - print(Pessoa.cumprimentar(p)) - print(id(p)) - print(p.cumprimentar()) #O jeito mais fácil de fazer. - print(p.nome) - p.nome = 'Douglas' - print(p.nome) - print(p.idade) \ No newline at end of file + renzo = Pessoa(nome="Renzo") + dodo = Pessoa(renzo, nome="Dodo") + print(Pessoa.cumprimentar(dodo)) + print(id(dodo)) + print(dodo.cumprimentar()) #O jeito mais fácil de fazer. + print(dodo.nome) + print(dodo.idade) + for filho in dodo.filhos: + print(filho.nome) + From 5879fe57b72e3ed2c7696b02450c812ed5457a76 Mon Sep 17 00:00:00 2001 From: Douglas Date: Fri, 22 May 2020 13:21:56 -0300 Subject: [PATCH 5/6] =?UTF-8?q?Criando=20e=20removido=20atributo=20din?= =?UTF-8?q?=C3=A2mico=20de=20objetos=20do=20tipo=20pessoa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index a544b3a9d..71457b16f 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,20 +1,41 @@ class Pessoa: + + # Criando a função def __init__(self, *filhos, nome = None, idade = 28): self.idade = idade self.nome = nome self.filhos = list(filhos) + # Criando a função def cumprimentar(self): return f'Olá {id(self)}' + if __name__ == '__main__': + # criando uma variável da classe. renzo = Pessoa(nome="Renzo") + + # criando uma variável da classe. dodo = Pessoa(renzo, nome="Dodo") - print(Pessoa.cumprimentar(dodo)) - print(id(dodo)) - print(dodo.cumprimentar()) #O jeito mais fácil de fazer. + + # chamando a função cumprimentar da calsse Pessoa passando a varíavel da classe dodo + print(dodo.cumprimentar()) + # chamando o atributo nome print(dodo.nome) + # chamando o atibuto idade print(dodo.idade) + + # Irá imprimir o nome de todas as variaveis do atributo filhos do dodo. for filho in dodo.filhos: print(filho.nome) + # Estou adicionando uma variavel para o atributo sobrenome dinamicamente. + dodo.sobrenome = "Carvalho" + print(dodo.sobrenome) + + #Confere todos os atributos de instancia do objeto. + print(renzo.__dict__) + print(dodo.__dict__) + + #exclui a variavel filho dinamicamente. + del dodo.filhos \ No newline at end of file From 40e68fcf5e4b63c6399cae4e38e88bedc533e92b Mon Sep 17 00:00:00 2001 From: Douglas Date: Fri, 22 May 2020 13:37:39 -0300 Subject: [PATCH 6/6] Criando atributo de classe olhos --- oo/pessoa.py | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 71457b16f..9ce950701 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,4 +1,8 @@ class Pessoa: + # Estou criando atributo default ou atributo de classe. + # Atributo de classe ele não aloca um espaço na memória para cada classe. Somente quando você + # Altera o valor. + olhos = 2 # Criando a função def __init__(self, *filhos, nome = None, idade = 28): @@ -12,30 +16,45 @@ def cumprimentar(self): if __name__ == '__main__': - # criando uma variável da classe. + # criando uma instancia da classe. renzo = Pessoa(nome="Renzo") - # criando uma variável da classe. + # criando uma instancia da classe. dodo = Pessoa(renzo, nome="Dodo") - # chamando a função cumprimentar da calsse Pessoa passando a varíavel da classe dodo + + # chamando a função cumprimentar da calsse Pessoa passando a instancia dodo print(dodo.cumprimentar()) # chamando o atributo nome print(dodo.nome) # chamando o atibuto idade print(dodo.idade) + # Irá imprimir o nome de todas as variaveis do atributo filhos do dodo. for filho in dodo.filhos: print(filho.nome) + # Estou adicionando uma variavel para o atributo sobrenome dinamicamente. dodo.sobrenome = "Carvalho" print(dodo.sobrenome) - #Confere todos os atributos de instancia do objeto. + # Exclui a variavel filho dinamicamente da instancia dodo e não da classe Pessoa. + del dodo.filhos + + + # Confere todos os atributos da instancia do objeto e não os atributos da classe. print(renzo.__dict__) + + # (somente quando altera o atributo da classe para aparecer nos atributos da instancia.) + # Alterando a quantidade de olhos da estancia dodo. + dodo.olhos = 1 print(dodo.__dict__) - #exclui a variavel filho dinamicamente. - del dodo.filhos \ No newline at end of file + + # Isso não é possivel, porque nome não é um atributo da classe e sim da instancia criada. + # print(Pessoa.nome) + + # Isso é possivel porque olhos é um atributo da classe. + # print(Pessoa.olhos) \ No newline at end of file