Ocultação de dados em Python: o que é, vantagens e desvantagens [com exemplo de codificação]

Publicados: 2021-02-05

Índice

O que é ocultação de dados?

É um método usado em programação orientada a objetos (OOP) para ocultar com a intenção de ocultar informações/dados dentro de um código de computador. Detalhes de objetos internos, como membros de dados, estão ocultos em uma classe. Ele garante acesso restrito aos dados aos membros da classe enquanto mantém a integridade do objeto. A ocultação de dados inclui um processo de combinação de dados e funções em uma única unidade para ocultar dados dentro de uma classe, restringindo o acesso direto aos dados de fora da classe. Se você é iniciante em ciência de dados e deseja adquirir experiência, confira nossos cursos de ciência de dados das melhores universidades.

A ocultação de dados ajuda os programadores de computador a criar classes com conjuntos de dados e funções exclusivos, evitando a entrada desnecessária de outras classes no programa. Sendo uma técnica de desenvolvimento de software em POO, garante acesso exclusivo aos dados e evita alterações intencionais ou não intencionais nos dados. Essas interdependências limitadas em componentes de software ajudam a reduzir a complexidade do sistema e aumentam a robustez do programa.

A ocultação de dados também é conhecida como ocultação de informações ou encapsulamento de dados. O encapsulamento de dados é feito para ocultar os detalhes de implementação do aplicativo de seus usuários. Como a intenção por trás de ambos é a mesma, o encapsulamento também é conhecido como ocultação de dados. Quando um membro de dados é mencionado como privado na classe, ele é acessível apenas dentro da mesma classe e inacessível fora dessa classe.

Esconder dados em Python

Python está se tornando uma linguagem de programação popular, pois se aplica a todos os setores e possui ferramentas e bibliotecas fáceis de implementação de programas. O documento Python define a Ocultação de Dados como isolando o cliente de uma parte da implementação do programa. Alguns objetos no módulo são mantidos internos, invisíveis e inacessíveis ao usuário.

Os módulos do programa são abertos o suficiente para entender como usar o aplicativo, mas os usuários não podem saber como o aplicativo funciona. Assim, a ocultação de dados fornece segurança, além de evitar dependência. A ocultação de dados em Python é o método para impedir o acesso a usuários específicos no aplicativo.

A ocultação de dados em Python é feita usando um sublinhado duplo antes (prefixo) do nome do atributo. Isso torna o atributo privado/inacessível e o oculta dos usuários. Python não tem nada de secreto no sentido real. Ainda assim, os nomes de métodos e atributos privados são internamente mutilados e desmembrados em tempo real, tornando-os inacessíveis por seus nomes próprios.

Exemplo de ocultação de dados em Python

#!/usr/bin/python

class JustCounter :

__secretCount = 0

contagem def ( self ):

próprio . __secretCount += 1

imprimir a si mesmo . __secretCount

contador = JustCounter ()

contador . contar ()

contador . contar ()

contador de impressão . __secretCount

Saída

1

2

Traceback (última chamada mais recente):

Arquivo “test.py”, linha 12, em <module>

imprimir contador.__secretCount

AttributeError: a instância JustCounter não tem atributo '__secretCount'

O Python altera internamente os nomes dos membros na classe que é acessada por object._className__attrName.

Se a última linha for alterada como:

……………………….

imprimir contador._JustCounter__secretCount

Então funciona, e a saída é:

1

2

2

Vantagens da ocultação de dados

  • Os objetos dentro da classe são desconectados de dados irrelevantes.
  • Ele aumenta a segurança contra hackers que não conseguem acessar dados confidenciais.
  • Ele evita que os programadores se conectem acidentalmente a dados incorretos. Se o programador vincular esses dados no código, ele só retornará um erro indicando correções no erro.
  • Ele isola objetos como o conceito básico de POO.
  • Ele ajuda a evitar danos a dados voláteis, ocultando-os do público .

Desvantagens da ocultação de dados

  • Às vezes, pode forçar o programador a usar codificação extra.
  • A ligação entre os dados visíveis e invisíveis faz com que os objetos trabalhem mais rápido, mas a ocultação de dados impede essa ligação.
  • A ocultação de dados pode tornar mais difícil para um programador e precisa escrever códigos longos para criar efeitos nos dados ocultos.

Assim, a ocultação de dados é útil em Python quando se trata de privacidade e segurança de informações específicas dentro do aplicativo. Aumenta o trabalho dos programadores ao vincular dados ocultos no código. Mas, as vantagens que oferece são verdadeiramente inevitáveis.

Leia também: Perguntas e respostas da entrevista em Python

Conclusão

Para participar do nosso curso online de Python gratuito, você só precisa seguir estas etapas:

  • Dirija-se à nossa página upStart
  • Selecione o curso “Python for Data Science”
  • Clique em Cadastrar
  • Conclua o processo de registro

É isso. Você pode aprender Python online gratuitamente por meio de nosso recém-lançado programa upStart e iniciar sua jornada de ciência de dados. Você só teria que investir 30 minutos por dia durante algumas semanas. Este programa não requer investimento monetário.

Inscreva-se hoje e comece.

Se você tiver alguma dúvida ou sugestão sobre este assunto, por favor, deixe-nos saber nos comentários abaixo. Adoraríamos ouvir de você.

Se você está curioso para aprender sobre ciência de dados, confira o Programa PG Executivo em Ciência de Dados do IIIT-B & upGrad, que é criado para profissionais que trabalham e oferece mais de 10 estudos de caso e projetos, workshops práticos práticos, orientação com especialistas do setor, 1 -on-1 com mentores do setor, mais de 400 horas de aprendizado e assistência de trabalho com as principais empresas.

O que estão escondendo dados em Python?

A ocultação de dados é um dos principais conceitos da programação orientada a objetos, que restringe o acesso aos dados do mundo exterior. Detalhes como membros de dados são mantidos ocultos com a ajuda do especificador de acesso “Privado”. Considere o exemplo a seguir para melhor compreensão.
Suponha que temos uma classe chamada myClass e um membro privado chamado __privateCounter. Dentro desta classe, temos uma função chamada myFunc que incrementa o valor de __privateCounter em 1 e o imprime. Fora da classe, criamos um objeto da classe e chamamos o myFunc usando este objeto. Agora, se tentarmos imprimir __privateCounter usando este objeto, ele gerará um erro.
No exemplo acima, o “__privateCounter” é por padrão um membro privado da classe “myClass”. Uma vez que realizamos a ocultação de dados nele, ele não pode ser acessado fora da classe na qual foi declarado. Para acessar os membros privados, temos que definir uma função de membro, que neste caso é “myFunc”.

Quais são as vantagens e desvantagens da ocultação de dados?

Embora a ocultação de dados seja um conceito central de OOPs e tenha muitas vantagens, também apresenta algumas desvantagens. A seguir estão algumas das vantagens e desvantagens mais significativas da ocultação de dados no Python:
Vantagens
1. Ajuda a evitar o uso indevido e a manipulação de dados voláteis, declarando-os como privados.
2. Os membros de dados da classe são desvinculados dos dados irrelevantes.
3. Isola objetos como conceito básico de POO.
Desvantagens
1. Os programadores geralmente são forçados a escrever códigos longos para proteger os dados voláteis dos clientes.
2. Os objetos funcionam comparativamente mais devagar, pois a ligação entre os dados visíveis e invisíveis faz com que funcione rápido e a ocultação de dados impede essa ligação.

Como a ocultação de dados difere da abstração de dados?

A ocultação de dados suporta a ideia de restringir os dados para que não possam ser acessados ​​ou modificados pelo mundo exterior. Por exemplo, os detalhes salariais de um funcionário ficam ocultos de outros funcionários. Em Python, isso é feito usando o “modificador de acesso privado”.
A abstração de dados refere-se à ideia de ocultar a implementação interna e apenas mostrar os recursos para o mundo externo. Por exemplo, em uma calculadora, são mostradas apenas as operações realizadas pela calculadora. No entanto, você não pode ver o funcionamento interno dessas operações. Em Python, diferentes especificadores de acesso são usados ​​para implementar isso.