Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

des questions theoriques dont je ne trouve pas la reponse dans des tuto

+1 vote
  • je veux savoir "ou" je peux apprendre pourquoi il existe beaucoup d'implementation python
  • une implementation c'est dure a comprendre pourquoi un language est ecrit en un autre
  • si on importe des librairie tierce comment un autre pourra l'executer ou le modifier
    envie de savoir ou je puisse me documenter pas de reponses courtes je veux m'approfondir
demandé 11-Oct-2015 par anonyme
edité 20-Aou-2016 par foxmask

3 Réponses

+3 votes
  • Pour la première question, j'ai envie de dire qu'il n'existe pas tant d’implémentations que ça. Les plus connues et utilisées sont CPython (l'implémentation officielle), et pypy qui existe essentiellement pour des raisons de performance. Je te laisse te faire un aperçu des autres implémentations ici, il semble clairement que ce soit une question de machine virtuelle.
  • Je dirais plutôt l'inverse : c'est dur à comprendre comment un langage peut-être implanté avec le même langage (le problème de l’œuf ou la poule, toussa). Grosso-modo, lorsque l'on dit qu'un langage est implémenté dans le langage lui-même, c'est qu'on te cache des trucs.
  • Rien compris à la question.
répondu 11-Oct-2015 par yoch (2,272 points)
edité 11-Oct-2015 par yoch

Rien compris à la question.

lol

+1 vote

une implementation c'est dure a comprendre pourquoi un language est
ecrit en un autre

  • Car il peut y avoir un énorme gain de performances en implément des
    bouts de ton appli en C, et vu que le C c'est un peu chiant, bah on
    utilise Cython.
  • Toi qui a l'air de vouloire approfondir, voici un article
    illustre bien ça

si on importe des librairie tierce comment un autre pourra l'executer
ou le modifier

  • En faisiant un import dans l'en-tête de ton fichier, et en
    appelant la méthode que tu veux utiliser directement.

je veux savoir "ou" je peux apprendre pourquoi il existe beaucoup
d'implementation python

  • Je trouve ça bizarre comme question, la pluralité des softs est peut-être dû au fait que ce soit un logiciel libre, donc n'importe qui ayant une idée cool peut faire une implem dans un langage qu'il aime bien s'il veut faire cohabiter python avec d'autres langages dans une même appli sans se faire chier.
  • Exemple d'implem avec C /C++
  • l'intro de la doc est pas trop chiante et rentre un peu dans notre
    sujet, peut-être que cela t'éclairera un peu plus :

It is quite easy to add new built-in modules to Python, if you know
how to program in C. Such extension modules can do two things that
can’t be done directly in Python: they can implement new built-in
object types, and they can call C library functions and system calls.

To support extensions, the Python API (Application Programmers
Interface) defines a set of functions, macros and variables that
provide access to most aspects of the Python run-time system. The
Python API is incorporated in a C source file by including the header
"Python.h".

The compilation of an extension module depends on its intended use as
well as on your system setup; details are given in later chapters.

répondu 11-Oct-2015 par boblinux (3,092 points)

ma 2 eme question: je voulais dire si une AUTRE personne veut executer notre code comment il fait ( on se connait pas je veu que mon code ait une insttruction "ce mec la a besoin de tel et tel librairie. il en a pas ? telecharge les ) comme dans la police avec html le navigateur les telechargent si il en a pas merci

Dans ton projet, tu fournis un fichier nommé requirements.txt avec dedans toutes les libs dont dépend le projet(par exemple) :

colorama==0.3.3 

Ensuite, dans ta doc, tu demandes au mec d'installer toutes les libs dont dépend le projet avec un message du genre :

To install all dependences, make :

pip install -r requirements.txt

Voir par exemple le projet pygarden

Pour voir le sujet de pip plus en détail je te renvoie vers l'article de developpez.com, en fait ce dont on parle ici s'appelle le package

Sinon si tu fais partie du clan S&M, tu peux voir par ;)

0 votes

Ces questions se posent quand il y a une incompréhension sur le mot «Python».

Un langage, par exemple python, est initialement une norme, souvent sous la forme d'une grammaire.
Puis, il y a des gens motivés pour le faire qui vont écrire un programme capable d'interpréter cette grammaire.
Dans le cas de python, Guido Van Rossum a travaillé sur les deux aspects, et a décidé d'implémenter CPython, appelé ainsi car ce programme, comprenant le langage python, est écrit en C.

Python se réfère finalement à trois choses : la norme, le programme et l'outils.

  • la norme, c'est essentiellement la grammaire, les PEP, les spécifications qui définissent les particularités de python en tant que langage.

  • le programme, c'est par exemple CPython, un gros programme bien complexe, capable de lire un fichier écrit selon la norme du langage, afin de réaliser des actions définies par ladite norme.

  • l'outils, c'est l'interpréteur, et tous les outils qui vont autour, l'écosystème, et dans une plus large mesure, la communauté.

  • la documentation est le résultat de ces trois points : un mélange entre la norme (les connaissances dures), les outils développés (stdlib par exemple), et les efforts de la communauté (les exemples, les guides, les cheatsheet).

D'ailleurs, sur la page d'entrée de la doc de python, on trouve bien language reference, librairie reference, et tutorial, trois résultantes de chacun des trois points.

Par exemple, la fonction print est, d'après la norme python, une fonction, qui prend un nombre variable d'arguments qui vont être retranscrit en utf-8 dans la sortie standard.
Dans l'implémentation CPython, ça se traduit par une grammaire qui détecte les appels à la fonction dans le code source, et par l'implémentation d'une routine qui va à son tour appeler les routines en C pour écrire dans la sortie standard.
Dans la communauté, cela devient la fonction de référence pour débugger son programme en l'absence d'un débuggueur, ou afficher "hello, world" à l'écran.

répondu 15-Aou-2016 par lucas (2,250 points)
...