Olá a todos! Sou programador Java e há alguns dias descobri o Python, gostei da linguagem e estou tentando aprender. Estou brincando um pouco com a orientação a objeto do Python para ver o que eu aprendo, e tentei criar um construtor sobrecarregado e deu um erro na hora de executar.  Eu fiz o seguinte arquivo Pessoa.py contendo a classe Pessoa:   class Pessoa:
    nome = 0
    idade = 0
    rg = 0
    cpf = 0
    def __init__(self):
        self.setNome("")
        self.setIdade(0)
        self.setRg("")
        self.setCpf("")
    def __init__(self, nome, idade, rg, cpf):
        self.setNome(nome)
        self.setIdade(idade)
        self.setRg(rg)
        self.setCpf(cpf)
    def setNome(self, nome):
        self.nome = nome
    def getNome(self):
        return self.nome
    def setIdade(self, idade):
        self.idade = idade
    def getIdade(self):
        return self.idade
    def setRg(self, rg):
        self.rg = rg
    def getRg(self):
        return self.rg
    def setCpf(self, cpf):
        self.cpf = cpf
    def getCpf(self):
        return self.cpf
    def __str__(self):
        return ("Nome: " + self.getNome() + "\nIdade: " + str(self.getIdade()) +
            "\nRG: " + str(self.getRg()) + "\nCPF: " + str(self.getCpf()))
E o arquivo Main.py, que instancia o objeto:
import Pessoa
print "imprimindo p:\n"
p = Pessoa.Pessoa("jose", 23, "00", "11")
print p
print "imprimindo q:\n"
q = Pessoa.Pessoa()
print q
A saída desse código é a seguinte:
bruno@bruno-desktop:~/python/teste1$ python Main.py
imprimindo p:
Nome: jose
Idade: 23
RG: 00
CPF: 11
imprimindo q:
Traceback (most recent call last):
  File "Main.py", line 8, in <module>
    q = Pessoa.Pessoa()
TypeError: __init__() takes exactly 5 arguments (1 given)
bruno@bruno-desktop:~/python/teste1$   Existe como criar construtores sobrecarregados em Python? Se existe como eu faço? E aproveitando... Eu fiz os Gets e Sets na minha classe, mas eu não sei como tornar os atributos públicos ou privados. existe como fazer isso?