# -*- coding: utf-8 -*-
"""Getters_Setters.ipynb

Automatically generated by Colaboratory.

Original file is located at
    https://colab.research.google.com/drive/1hsmXu2X6O9LY30oL_YD79ci-n2Xw_k_3

# Atividade 5 - POO - A2
## Getters e Setters
"""

class Estado:
    '''
        Essa classe instancia um estado com nome, quantidade de habitantes e pib.
            Alem disso, também calcula a renda per capita deste estado
    '''
    def __init__(self, nome: str, habitantes: int, pib: float):
        self._nome = nome
        self._habitantes = habitantes
        self._pib = pib
        
    def __str__(self) -> str:
        return "O estado foi instanciado!"
        
    @property
    def nome(self) -> str:
        '''
            Return
            ----
            nome: nome do estado
        '''
        return self._nome

    @nome.setter
    def nome(self, value: str):
        '''
            Params
            ----
            value: novo nome do estado
        '''
        self._nome = value

    @property
    def habitantes(self) -> int:
        '''
            Return
            ----
            habitantes: habitantes do estado
        '''
        return self._habitantes

    @habitantes.setter
    def habitantes(self, value: int):
        '''
            Params
            ----
            value: nova quantidade de habitantes
        '''
        self._habitantes = value

    @property
    def pib(self) -> float:
        '''
            Return
            ----
            pib: pib do estado
        '''
        return self._pib

    @pib.setter
    def pib(self, value: float):
        '''
            Params
            ----
            value: novo pib do estado
        '''
        self._pib = value

    def _decorator(foo):
        '''
            Decorador para a funcao que calcula renda per capita
        '''
        def mostra(self) :
            print("É importante conhecer o Pib dos estados de seu país!")
            print("Mas também é importante saber a renda per capita dos estados e sua distribuicao.")
            foo(self)
        return mostra
        
    @_decorator
    def pib_percapita(self):
        per_cap = self._pib / self._habitantes
        print(f"A renda Per capta de {self._nome} é {per_cap}")
        return per_cap

"""----"""

mg = Estado('Minas', 1000, 5000)

print(mg.nome)

"""----"""

mg.nome = 'Minas Gerais'

print(mg.nome)

"""----"""

mg.habitantes = 8000

print(mg.habitantes)

"""----"""

mg.pib = 1000000

print(mg.pib)

"""----"""

mg.pib_percapita()




1e7e751a1f866845b19eafeb383693747a877cf0
<mask token>


class Estado:
    <mask token>
    <mask token>

    def __str__(self) ->str:
        return 'O estado foi instanciado!'

    @property
    def nome(self) ->str:
        """
            Return
            ----
            nome: nome do estado
        """
        return self._nome

    @nome.setter
    def nome(self, value: str):
        """
            Params
            ----
            value: novo nome do estado
        """
        self._nome = value

    @property
    def habitantes(self) ->int:
        """
            Return
            ----
            habitantes: habitantes do estado
        """
        return self._habitantes
    <mask token>
    <mask token>
    <mask token>

    def _decorator(foo):
        """
            Decorador para a funcao que calcula renda per capita
        """

        def mostra(self):
            print('É importante conhecer o Pib dos estados de seu país!')
            print(
                'Mas também é importante saber a renda per capita dos estados e sua distribuicao.'
                )
            foo(self)
        return mostra

    @_decorator
    def pib_percapita(self):
        per_cap = self._pib / self._habitantes
        print(f'A renda Per capta de {self._nome} é {per_cap}')
        return per_cap


<mask token>

<mask token>


class Estado:
    <mask token>
    <mask token>

    def __str__(self) ->str:
        return 'O estado foi instanciado!'

    @property
    def nome(self) ->str:
        """
            Return
            ----
            nome: nome do estado
        """
        return self._nome

    @nome.setter
    def nome(self, value: str):
        """
            Params
            ----
            value: novo nome do estado
        """
        self._nome = value

    @property
    def habitantes(self) ->int:
        """
            Return
            ----
            habitantes: habitantes do estado
        """
        return self._habitantes
    <mask token>

    @property
    def pib(self) ->float:
        """
            Return
            ----
            pib: pib do estado
        """
        return self._pib

    @pib.setter
    def pib(self, value: float):
        """
            Params
            ----
            value: novo pib do estado
        """
        self._pib = value

    def _decorator(foo):
        """
            Decorador para a funcao que calcula renda per capita
        """

        def mostra(self):
            print('É importante conhecer o Pib dos estados de seu país!')
            print(
                'Mas também é importante saber a renda per capita dos estados e sua distribuicao.'
                )
            foo(self)
        return mostra

    @_decorator
    def pib_percapita(self):
        per_cap = self._pib / self._habitantes
        print(f'A renda Per capta de {self._nome} é {per_cap}')
        return per_cap


<mask token>

<mask token>


class Estado:
    """
        Essa classe instancia um estado com nome, quantidade de habitantes e pib.
            Alem disso, também calcula a renda per capita deste estado
    """

    def __init__(self, nome: str, habitantes: int, pib: float):
        self._nome = nome
        self._habitantes = habitantes
        self._pib = pib

    def __str__(self) ->str:
        return 'O estado foi instanciado!'

    @property
    def nome(self) ->str:
        """
            Return
            ----
            nome: nome do estado
        """
        return self._nome

    @nome.setter
    def nome(self, value: str):
        """
            Params
            ----
            value: novo nome do estado
        """
        self._nome = value

    @property
    def habitantes(self) ->int:
        """
            Return
            ----
            habitantes: habitantes do estado
        """
        return self._habitantes

    @habitantes.setter
    def habitantes(self, value: int):
        """
            Params
            ----
            value: nova quantidade de habitantes
        """
        self._habitantes = value

    @property
    def pib(self) ->float:
        """
            Return
            ----
            pib: pib do estado
        """
        return self._pib

    @pib.setter
    def pib(self, value: float):
        """
            Params
            ----
            value: novo pib do estado
        """
        self._pib = value

    def _decorator(foo):
        """
            Decorador para a funcao que calcula renda per capita
        """

        def mostra(self):
            print('É importante conhecer o Pib dos estados de seu país!')
            print(
                'Mas também é importante saber a renda per capita dos estados e sua distribuicao.'
                )
            foo(self)
        return mostra

    @_decorator
    def pib_percapita(self):
        per_cap = self._pib / self._habitantes
        print(f'A renda Per capta de {self._nome} é {per_cap}')
        return per_cap


<mask token>

<mask token>


class Estado:
    """
        Essa classe instancia um estado com nome, quantidade de habitantes e pib.
            Alem disso, também calcula a renda per capita deste estado
    """

    def __init__(self, nome: str, habitantes: int, pib: float):
        self._nome = nome
        self._habitantes = habitantes
        self._pib = pib

    def __str__(self) ->str:
        return 'O estado foi instanciado!'

    @property
    def nome(self) ->str:
        """
            Return
            ----
            nome: nome do estado
        """
        return self._nome

    @nome.setter
    def nome(self, value: str):
        """
            Params
            ----
            value: novo nome do estado
        """
        self._nome = value

    @property
    def habitantes(self) ->int:
        """
            Return
            ----
            habitantes: habitantes do estado
        """
        return self._habitantes

    @habitantes.setter
    def habitantes(self, value: int):
        """
            Params
            ----
            value: nova quantidade de habitantes
        """
        self._habitantes = value

    @property
    def pib(self) ->float:
        """
            Return
            ----
            pib: pib do estado
        """
        return self._pib

    @pib.setter
    def pib(self, value: float):
        """
            Params
            ----
            value: novo pib do estado
        """
        self._pib = value

    def _decorator(foo):
        """
            Decorador para a funcao que calcula renda per capita
        """

        def mostra(self):
            print('É importante conhecer o Pib dos estados de seu país!')
            print(
                'Mas também é importante saber a renda per capita dos estados e sua distribuicao.'
                )
            foo(self)
        return mostra

    @_decorator
    def pib_percapita(self):
        per_cap = self._pib / self._habitantes
        print(f'A renda Per capta de {self._nome} é {per_cap}')
        return per_cap


<mask token>
mg = Estado('Minas', 1000, 5000)
print(mg.nome)
<mask token>
mg.nome = 'Minas Gerais'
print(mg.nome)
<mask token>
mg.habitantes = 8000
print(mg.habitantes)
<mask token>
mg.pib = 1000000
print(mg.pib)
<mask token>
mg.pib_percapita()

# -*- coding: utf-8 -*-
"""Getters_Setters.ipynb

Automatically generated by Colaboratory.

Original file is located at
    https://colab.research.google.com/drive/1hsmXu2X6O9LY30oL_YD79ci-n2Xw_k_3

# Atividade 5 - POO - A2
## Getters e Setters
"""

class Estado:
    '''
        Essa classe instancia um estado com nome, quantidade de habitantes e pib.
            Alem disso, também calcula a renda per capita deste estado
    '''
    def __init__(self, nome: str, habitantes: int, pib: float):
        self._nome = nome
        self._habitantes = habitantes
        self._pib = pib
        
    def __str__(self) -> str:
        return "O estado foi instanciado!"
        
    @property
    def nome(self) -> str:
        '''
            Return
            ----
            nome: nome do estado
        '''
        return self._nome

    @nome.setter
    def nome(self, value: str):
        '''
            Params
            ----
            value: novo nome do estado
        '''
        self._nome = value

    @property
    def habitantes(self) -> int:
        '''
            Return
            ----
            habitantes: habitantes do estado
        '''
        return self._habitantes

    @habitantes.setter
    def habitantes(self, value: int):
        '''
            Params
            ----
            value: nova quantidade de habitantes
        '''
        self._habitantes = value

    @property
    def pib(self) -> float:
        '''
            Return
            ----
            pib: pib do estado
        '''
        return self._pib

    @pib.setter
    def pib(self, value: float):
        '''
            Params
            ----
            value: novo pib do estado
        '''
        self._pib = value

    def _decorator(foo):
        '''
            Decorador para a funcao que calcula renda per capita
        '''
        def mostra(self) :
            print("É importante conhecer o Pib dos estados de seu país!")
            print("Mas também é importante saber a renda per capita dos estados e sua distribuicao.")
            foo(self)
        return mostra
        
    @_decorator
    def pib_percapita(self):
        per_cap = self._pib / self._habitantes
        print(f"A renda Per capta de {self._nome} é {per_cap}")
        return per_cap

"""----"""

mg = Estado('Minas', 1000, 5000)

print(mg.nome)

"""----"""

mg.nome = 'Minas Gerais'

print(mg.nome)

"""----"""

mg.habitantes = 8000

print(mg.habitantes)

"""----"""

mg.pib = 1000000

print(mg.pib)

"""----"""

mg.pib_percapita()



