Oi André, não sou especialista em python, mas essa é uma ideia presente em diversas linguagens.. O propósito é que vc não escreva os métodos de acesso para seus atributos.. Por exemplo, vc tem um atributo cpf, na classe PessoaJuridica. Em vez de criar um método que retorna o valor do cpf e outro que define o valor do cpf, vc pode usar uma @Property.
O yield já é mais enjoado, pq ele esté associado com um conceito chamado generators... Essa discussão no stackoverflow tem uma explicação muito boa => http://stackoverflow.com/questions/231767/what-does-the-yield-keyword-do
Só estou passando o link pq realmente é um assunto diferente e que demanda uma explicação grande mesmo, que o usuário lá já fez. Qualquer dúvida que sobrar, pode voltar aqui com a gente que vamos tentar tirar.