Atribuir à variáveis de outro arquivo

824 views
Skip to first unread message

Pedro

unread,
Aug 14, 2015, 12:50:30 PM8/14/15
to Python Brasil
Sou iniciante então a dúvida talvez seja boba(apesar de eu não te-la encontrado).

Meu arquivo principal acessa um método que criei em outro arquivo. Neste método é necessário novas atribuições a variáveis do meu primeiro arquivo.
Mas não consigo atribuir valores a estas variáveis declaradas no primeiro arquivo. 
Exemplo - Arquivo Principal        |         Arquivo Dois
                                                    
                 import Arquivo Dois    |        def Alterar():
                 b = 2                           |               b += 1
                 ArquivoDois.Alterar()  |

Se o que quero não tem como, vocês podem me dar uma alternativa?
(Pergunta Extra: Import é necessário mesmo quando estão no mesmo 'pacote'?)
Agradeço desde já!

Welton Vaz

unread,
Aug 14, 2015, 4:12:13 PM8/14/15
to python...@googlegroups.com
Pedro,

Vou tentar explicar para vc, quando vc quer usar uma função em outro programa em python
tem que importar mesmo.

No seu exemplo, vou assumir que o Arquivo  Dois, SE chame ArquivoDois.py e o ArquivoPrincipal.py

----- ArquivoPrincipal.py ---
import ArquivoDois
b = 2
print (ArquivoDois.Alterar(b))

----- ArquivoDois.py ---------
def Alterar(b):
b += 1
return b

Quando vc importa um arquivo python, ele tem namespace próprio e são objetos Singleton(é carregada somente uma instância
, que fica disponível de forma global para o programa, a importação é absoluta, vc pode usar tb a importação relativa(from ArquivoDois import Alterar). Agora vc tem que passar os argumentos de forma absoluta na função e na chamada do arquivo principal, senão o interpretador não vai saber o que vc quer e aparecerá o erro: UnboundLocalError

E RESPONDENDO a pergunta extra: sim, mesmo no mesmo pacote vc tem referenciar absolutamente ou relativamente o que vc
for usar.

Como sugestão, sugiro os livros fantásticos do:
- Introdução à Programação com Python – 2ª Edição Algoritmos e lógica de programação para iniciantes - http://www.novatec.com.br/livros/introducao-python-2ed/

obs: o melhor livro que já li sobre Python

- Python para Desenvolvedores - http://www.novatec.com.br/livros/pythondesenvolvedores/

obs: o segundo melhor livro que já li sobre python, tem uma versão gratuita para python2 no site do autor, que foi o primeiro livro
que li sobre Python





Enviado com MailTrack

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--

Welton Vaz de Souza
TWITTER: http://twitter.com/Weltonvaz
BLOG: http://ghandybh.blogspot.com/
FACEBOOK: https://www.facebook.com/weltonv
Cel: (31)9327-0823



Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor que complicado.
Plano é melhor que aninhado.
Esparso é melhor que denso.
Legibilidade conta.
Casos especiais não são especiais o bastante para se quebrar as regras.
Embora a simplicidade supere o purismo.
Erros nunca deveriam passar silenciosamente.
A menos que explicitamente silenciados.
Ao encarar a ambiguidade, recuse a tentação de adivinhar.
Deveria haver uma – e preferencialmente apenas uma – maneira óbvia de se fazer isto.
Embora aquela maneira possa não ser óbvia à primeira vista se você não for holandês.
Agora é melhor que nunca.
Embora nunca, seja muitas vezes melhor que pra .
Se a implementação é difícil de explicar, é uma má idéia.
Se a implementação é fácil de explicar, pode ser uma boa idéia.
Namespaces são uma idéia estupenda – vamos fazer mais deles!
***********************************************************

 °v° NÃO USE DROGAS,
/(_)\ USE GNU/LINUX
 ^ ^

Pedro

unread,
Aug 18, 2015, 8:35:16 AM8/18/15
to Python Brasil
Muito obrigado pela atenção Welton!

Consegui entender perfeitamente! E muito obrigado pela sugestão, já confesso que o primeiro livro está em minhas mãos e realmente está sendo de incrível :)
Agora o segundo livro vou buscar neste exato momento!

Obs: Com uma resposta dedicada dessas fico menos envergonhado da próxima vez de expor minha dúvida.

\o>

 
Reply all
Reply to author
Forward
0 new messages