/ / No bloco de anotações Jupyter, como organizo as sub-rotinas para escrever um projeto com eficiência? - python, ipython, ipython-notebook, jupyter, jupyter-notebook

No notebook Jupyter, como organizo sub-rotinas para escrever um projeto com eficiência? - python, ipython, ipython-notebook, jupyter, jupyter-notebook

Eu gostaria de escrever um programa usando Python noJúpiter. Para facilitar as coisas, seria melhor escrever algumas sub-rotinas (funções) e provavelmente algumas classes definidas pelo usuário antes de escrever o script principal. Como organizá-las em Jupiter? Apenas cada sub-função / classe para uma nova linha e escrever sequencialmente e, em seguida, escrever o script principal abaixo para chamar sub-rotinas? Eu só me pergunto se esse é o caminho certo para usar o Jupyter.

Eu sou novo no Jupyter e Python, mas no Matlab,por exemplo, eu criaria uma pasta que contém todas as sub-funções a serem usadas. E também escreverei um script dentro da mesma pasta para chamar essas funções para realizar a tarefa. No entanto, como faço para conseguir isso em Python usando o Jupyter?

Respostas:

-1 para resposta № 1

A melhor coisa a fazer para o código repetido que você desejatodo o seu notebook para acessar é adicioná-lo ao diretório do perfil. O notebook carregará todos os scripts desse diretório em ordem, por isso é recomendável que você nomeie os arquivos 01-<projname>.py se você deseja que eles carreguem em uma determinada ordem. Todos os arquivos nesse diretório serão carregados via exec que executa o arquivo como se estivesse no seucontexto, não é um carregamento de módulo, portanto os globais se esmagam e todo o contexto do modelo estará no seu espaço de nomes local posteriormente (semelhante a um import * efeito).

Para encontrar o diretório do perfil, os documentos recomendam que você use ipython locate profile <my_profile_name>. Isso informará onde você pode colocar o script.


2 para resposta № 2

Eu uso notebooks principalmente para análise de dados. Meu fluxo de trabalho é o seguinte: Durante o desenvolvimento, declaro todas as minhas rotinas em células de notebook. Quando preciso das mesmas funções para o próximo conjunto de dados, geralmente copio e colo-as no novo bloco de notas. Muitas vezes, tenho que adaptar um pouco as funções para o novo conjunto de dados. Quando descobri que uso funções frequentemente em cadernos de maio, crio um módulo separado (apenas um arquivo python com as funções coladas nele) e coloco esse diretório "global" em python (~/python) no meu sistema. Esta função está na minha $pythonpathe, portanto, no próximo caderno, posso simplesmente dizer

from read_data_functions import square_measurement, long_run