Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ou se trouve la Fonction Init de Py Game ?

Sujet résolu
    26 mai 2019 à 21:26:30

    Bonjour

    Je débute avec Pygame, j'ai une question à ce sujet

    Lorsque j'écris 

    import pygame
    pygame.init()

    Pygame étant une Bibliothèque, un Package, je me serai attendu à ce qu'on écrive PyGame.UnModule.init() Je sais que cette syntaxe existe mais ce que je veux dire c'est qu'il est à ma connaissance impossible de faire par exemple UnPackage.UneFonction() La Fonction devant être contenue dans un des Modules du Package. Alors comment se fait il qu'on puisse écrire pygame.init() Et ou se trouve cette fonction s'il vous plaît ?

    Merci à vous



    • Partager sur Facebook
    • Partager sur Twitter
      27 mai 2019 à 8:52:12

      Bonjour,

      Lorsque vous importer un package, dans celui ci ce trouve un fichier __init__.py qui est importer automatiquement. Par conséquent, lorsque vous faite

      pygame.init()

      vous utilisez la fonction dans le module __init__.py de pygame (ou dans un autre module importé par __init__.py)

      Note : après avoir cherché, il n'y a aucune fonction init dans __init__.py, elle doit ce trouvez dans un autre module importé par __init__.py

      from pygame.base import *
      from pygame.constants import *
      from pygame.version import *
      from pygame.rect import Rect
      from pygame.compat import PY_MAJOR_VERSION
      from pygame.rwobject import encode_string, encode_file_path
      import pygame.surflock
      import pygame.color
      import pygame.bufferproxy
      import pygame.math

      Source : pygame.__init__.py ligne 120.

      J'espère vous avoir aidé.

      • Partager sur Facebook
      • Partager sur Twitter
        28 mai 2019 à 4:56:29

        Ruya a écrit:

        Bonjour,

        Lorsque vous importer un package, dans celui ci ce trouve un fichier __init__.py qui est importer automatiquement. Par conséquent, lorsque vous faite

        pygame.init()

        vous utilisez la fonction dans le module __init__.py de pygame (ou dans un autre module importé par __init__.py)

        Note : après avoir cherché, il n'y a aucune fonction init dans __init__.py, elle doit ce trouvez dans un autre module importé par __init__.py

        from pygame.base import *
        from pygame.constants import *
        from pygame.version import *
        from pygame.rect import Rect
        from pygame.compat import PY_MAJOR_VERSION
        from pygame.rwobject import encode_string, encode_file_path
        import pygame.surflock
        import pygame.color
        import pygame.bufferproxy
        import pygame.math

        Source : pygame.__init__.py ligne 120.

        J'espère vous avoir aidé.

        Bonjour

        Merci pour votre réponse

        Mais j'ai un petit soucis de compréhension le fichier __init__.py n'est pas importé si je ne m'abuse mais directement exécuté non ? Du coup je ne comprend pas trop comment il peut ajouter cette fonction init dans l'espace de nom du Package sans l'appeler :/

        http://sametmax.com/vous-pouvez-mettre-du-code-dans-__init__-py/

        -
        Edité par WindowsARencontreUnProblemeEtDoitRedemarrer 28 mai 2019 à 5:00:54

        • Partager sur Facebook
        • Partager sur Twitter
          28 mai 2019 à 12:19:53

          En fait il faut comprendre comment fonctionne l'importation.

          Si tu as un fichier module.py dans le répertoire courant. Dans un fichier main.py, tu fais import module. Cette ligne va faire un certain nombre de choses. Sans trop rentrer dans les détails, le fichier module.py est exécuté une fois, puis le contenu du scope global ( toutes les variables, classes fonctions...) sont copiées dans l'espace de nom correspondant dans main.py.

          Du coup, quand tu import un package et non un module, il faut bien un fichier python a exécuter et dont les variables seront copiées dans main.py. Et ce fichier, c'est __init__.py.

          • Partager sur Facebook
          • Partager sur Twitter
            28 mai 2019 à 20:24:44

            __Nicolas__ a écrit:

            En fait il faut comprendre comment fonctionne l'importation.

            Si tu as un fichier module.py dans le répertoire courant. Dans un fichier main.py, tu fais import module. Cette ligne va faire un certain nombre de choses. Sans trop rentrer dans les détails, le fichier module.py est exécuté une fois, puis le contenu du scope global ( toutes les variables, classes fonctions...) sont copiées dans l'espace de nom correspondant dans main.py.

            Du coup, quand tu import un package et non un module, il faut bien un fichier python a exécuter et dont les variables seront copiées dans main.py. Et ce fichier, c'est __init__.py.


            Bonjour merci beaucoup pour votre réponse, l'importation c'est compris je crois je pense qu'il y avait juste un malentendu, le fichier __init__.py est executé via le programme en cours en gros ? Je croyais qu'il voulait dire qu'il était executé mais à part quoi
            • Partager sur Facebook
            • Partager sur Twitter

            Ou se trouve la Fonction Init de Py Game ?

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown