X Tutup
# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2024, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-04 09:48+0200\n" "PO-Revision-Date: 2025-05-03 17:11+0300\n" "Last-Translator: Panagiotis Skias \n" "Language-Team: PyGreece \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.4.2\n" #: tutorial/modules.rst:5 msgid "Modules" msgstr "Modules" #: tutorial/modules.rst:7 msgid "" "If you quit from the Python interpreter and enter it again, the definitions " "you have made (functions and variables) are lost. Therefore, if you want to " "write a somewhat longer program, you are better off using a text editor to " "prepare the input for the interpreter and running it with that file as input " "instead. This is known as creating a *script*. As your program gets " "longer, you may want to split it into several files for easier maintenance. " "You may also want to use a handy function that you've written in several " "programs without copying its definition into each program." msgstr "" "Εάν βγείτε από τον interpreter της Python και μπείτε ξανά, οι ορισμοί που " "έχετε κάνει (συναρτήσεις και μεταβλητές) χάνονται. Επομένως, εάν θέλετε να " "γράψετε ένα κάπως μεγαλύτερο πρόγραμμα, είναι προτιμότερο να χρησιμοποιήσετε " "έναν επεξεργαστή κειμένου για να προετοιμάσετε την εισαγωγή για τον " "interpreter και την εκτέλεση του με αυτό το αρχείο ως input. Αυτό είναι " "γνωστό ως δημιουργία *script*. Καθώς το πρόγραμμα σας μεγαλώνει, μπορεί να " "θέλετε να το χωρίσετε σε πολλά αρχεία για ευκολότερη συντήρηση. Μπορεί " "επίσης να θέλετε να χρησιμοποιήσετε μια εύχρηστη συνάρτηση που έχετε γράψει " "σε πολλά προγράμματα χωρίς να αντιγράψετε τον ορισμό της σε κάθε πρόγραμμα." #: tutorial/modules.rst:16 msgid "" "To support this, Python has a way to put definitions in a file and use them " "in a script or in an interactive instance of the interpreter. Such a file is " "called a *module*; definitions from a module can be *imported* into other " "modules or into the *main* module (the collection of variables that you have " "access to in a script executed at the top level and in calculator mode)." msgstr "" "Για να το υποστηρίξει αυτό, η Python έχει έναν τρόπο να βάζει ορισμούς σε " "ένα αρχείο και να τους χρησιμοποιεί σε ένα script ή σε ένα διαδραστικό " "instance του interpreter. Ένα τέτοιο αρχείο ονομάζεται *module*∙ ορισμοί " "από μια ενότητα μπορούν να *εισαχθούν* σε άλλα modules ή στο *κύριο* module " "(η συλλογή των μεταβλητών στις οποίες έχετε πρόσβαση σε ένα script που " "εκτελείται στον ανώτερο επίπεδο και σε λειτουργία αριθμομηχανής)." #: tutorial/modules.rst:22 msgid "" "A module is a file containing Python definitions and statements. The file " "name is the module name with the suffix :file:`.py` appended. Within a " "module, the module's name (as a string) is available as the value of the " "global variable ``__name__``. For instance, use your favorite text editor " "to create a file called :file:`fibo.py` in the current directory with the " "following contents::" msgstr "" "Ένα module είναι ένα αρχείο που περιέχει ορισμούς και δηλώσεις Python. Το " "όνομα αρχείου είναι το όνομα του module με το επίθημα :file:`.py`. Μέσε σε " "ένα module, το όνομα του module (ως συμβολοσειρά) είναι διαθέσιμο ως τιμή " "της global μεταβλητής ``__name__``. Για παράδειγμα, χρησιμοποιήστε το " "αγαπημένος σας πρόγραμμα επεξεργασίας κειμένου για να δημιουργήσετε ένα " "αρχείο που ονομάζεται :file:`fibo.py` στον τρέχοντα κατάλογο με τα ακόλουθα " "περιεχόμενα::" #: tutorial/modules.rst:28 msgid "" "# Fibonacci numbers module\n" "\n" "def fib(n):\n" " \"\"\"Write Fibonacci series up to n.\"\"\"\n" " a, b = 0, 1\n" " while a < n:\n" " print(a, end=' ')\n" " a, b = b, a+b\n" " print()\n" "\n" "def fib2(n):\n" " \"\"\"Return Fibonacci series up to n.\"\"\"\n" " result = []\n" " a, b = 0, 1\n" " while a < n:\n" " result.append(a)\n" " a, b = b, a+b\n" " return result" msgstr "" "# Fibonacci numbers module\n" "\n" "def fib(n):\n" " \"\"\"Write Fibonacci series up to n.\"\"\"\n" " a, b = 0, 1\n" " while a < n:\n" " print(a, end=' ')\n" " a, b = b, a+b\n" " print()\n" "\n" "def fib2(n):\n" " \"\"\"Return Fibonacci series up to n.\"\"\"\n" " result = []\n" " a, b = 0, 1\n" " while a < n:\n" " result.append(a)\n" " a, b = b, a+b\n" " return result" #: tutorial/modules.rst:47 msgid "" "Now enter the Python interpreter and import this module with the following " "command::" msgstr "" "Τώρα εισάγετε τον Python interpreter και εισάγετε αυτό το module με την " "ακόλουθη εντολή::" #: tutorial/modules.rst:50 msgid ">>> import fibo" msgstr ">>> import fibo" #: tutorial/modules.rst:52 msgid "" "This does not add the names of the functions defined in ``fibo`` directly " "to the current :term:`namespace` (see :ref:`tut-scopes` for more details); " "it only adds the module name ``fibo`` there. Using the module name you can " "access the functions::" msgstr "" "Αυτό δεν προσθέτει τα ονόματα των συναρτήσεων που ορίζονται στο ``fibo`` " "απευθείας στον τρέχοντα :term:`namespace` (βλ. :ref:`tut-scopes` για " "περισσότερες λεπτομέρειες): προσθέτει μόνο το όνομα του module ``fibo`` " "εκεί. Χρησιμοποιώντας το όνομα του module μπορείτε να αποκτήσετε πρόσβαση " "στις λειτουργίες::" #: tutorial/modules.rst:57 msgid "" ">>> fibo.fib(1000)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987\n" ">>> fibo.fib2(100)\n" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]\n" ">>> fibo.__name__\n" "'fibo'" msgstr "" ">>> fibo.fib(1000)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987\n" ">>> fibo.fib2(100)\n" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]\n" ">>> fibo.__name__\n" "'fibo'" #: tutorial/modules.rst:64 msgid "" "If you intend to use a function often you can assign it to a local name::" msgstr "" "Εάν σκοπεύετε να χρησιμοποιείτε συχνά μια συνάρτηση, μπορείτε να την " "αντιστοιχίσετε σε ένα τοπικό όνομα::" #: tutorial/modules.rst:66 msgid "" ">>> fib = fibo.fib\n" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" ">>> fib = fibo.fib\n" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: tutorial/modules.rst:74 msgid "More on Modules" msgstr "Περισσότερα για τα Modules" #: tutorial/modules.rst:76 msgid "" "A module can contain executable statements as well as function definitions. " "These statements are intended to initialize the module. They are executed " "only the *first* time the module name is encountered in an import statement. " "[#]_ (They are also run if the file is executed as a script.)" msgstr "" "Ένα module μπορεί να περιέχει εκτελέσιμες δηλώσεις καθώς και ορισμούς " "συναρτήσεων. Αυτές οι δηλώσεις προορίζονται για την προετοιμασία του module. " "Εκτελούνται μόνο την *πρώτη* φορά που εμφανίζεται το όνομα του module σε μια " "δήλωση εισαγωγής. [#]_ (Εκτελούνται επίσης εάν το αρχείο εκτελείται ως " "script.)" #: tutorial/modules.rst:81 msgid "" "Each module has its own private namespace, which is used as the global " "namespace by all functions defined in the module. Thus, the author of a " "module can use global variables in the module without worrying about " "accidental clashes with a user's global variables. On the other hand, if you " "know what you are doing you can touch a module's global variables with the " "same notation used to refer to its functions, ``modname.itemname``." msgstr "" "Κάθε module έχει τον δικό της ιδιωτικό namespace, ο οποίος χρησιμοποιείται " "ως global namespace από όλες τις συναρτήσεις που ορίζονται στο module. Έτσι, " "ο συντάκτης μιας ενότητας μπορεί να χρησιμοποιήσει global μεταβλητές στο " "module χωρίς να ανησυχεί για τυχαία conflicts με τις global μεταβλητές του " "χρήστη. Από την άλλη πλευρά, εάν ξέρετε τι κάνετε, μπορείτε να αγγίξετε τις " "global μεταβλητές ενός module με το ίδιο notation που χρησιμοποιείται για να " "αναφέρεται στις συναρτήσεις, ``modname.itemname``." #: tutorial/modules.rst:88 msgid "" "Modules can import other modules. It is customary but not required to place " "all :keyword:`import` statements at the beginning of a module (or script, " "for that matter). The imported module names, if placed at the top level of " "a module (outside any functions or classes), are added to the module's " "global namespace." msgstr "" "Τα modules μπορούν να εισάγουν άλλα modules. Είναι σύνηθες, αλλά δεν " "απαιτείται να τοποθετούνται όλες οι δηλώσεις :keyword:`import` στην αρχή " "μιας ενότητα (ή σεναρίου, για αυτό το θέμα). Τα ονόματα των modules που " "εισάγονται, εάν τοποθετούνται στο ανώτερο επίπεδο του ένα module (εκτός " "οποιωνδήποτε συναρτήσεων ή κλάσεων), προστίθενται στον global namespace του " "module." #: tutorial/modules.rst:93 msgid "" "There is a variant of the :keyword:`import` statement that imports names " "from a module directly into the importing module's namespace. For example::" msgstr "" "Υπάρχει μια παραλλαγή της δήλωσης :keyword:`import` που εισάγει ονόματα από " "ένα module απευθείας στον χώρο στα importing module's namespace. Για " "παράδειγμα::" #: tutorial/modules.rst:96 msgid "" ">>> from fibo import fib, fib2\n" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" ">>> from fibo import fib, fib2\n" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: tutorial/modules.rst:100 msgid "" "This does not introduce the module name from which the imports are taken in " "the local namespace (so in the example, ``fibo`` is not defined)." msgstr "" "Αυτό δεν εισάγει το όνομα ενός module από το οποίο λαμβάνονται οι εισαγωγές " "στο τοπικό namespace (αρά στο παράδειγμα, το ``fibo`` δεν ορίζεται)." #: tutorial/modules.rst:103 msgid "There is even a variant to import all names that a module defines::" msgstr "" "Υπάρχει ακόμη και μια παραλλαγή για την εισαγωγή όλων των ονομάτων που " "ορίζει μια ενότητα::" #: tutorial/modules.rst:105 msgid "" ">>> from fibo import *\n" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" ">>> from fibo import *\n" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: tutorial/modules.rst:109 msgid "" "This imports all names except those beginning with an underscore (``_``). In " "most cases Python programmers do not use this facility since it introduces " "an unknown set of names into the interpreter, possibly hiding some things " "you have already defined." msgstr "" "Αυτό εισάγει όλα τα ονόματα εκτός από αυτά που ξεκινούν με κάτω παύλα " "(``_``). Στις περισσότερες περιπτώσεις, οι προγραμματιστές Python δεν " "χρησιμοποιούν αυτήν την δυνατότητα , καθώς εισάγει ένα άγνωστο σύνολο " "ονομάτων στον interpreter, κρύβοντας πιθανώς κάποια πράγματα που έχετε ήδη " "ορίσει." #: tutorial/modules.rst:114 msgid "" "Note that in general the practice of importing ``*`` from a module or " "package is frowned upon, since it often causes poorly readable code. " "However, it is okay to use it to save typing in interactive sessions." msgstr "" "Λάβετε υπόψη ότι γενικά η πρακτική της εισαγωγής ``*`` από ένα module ή ένα " "πακέτο αποδοκιμάζεται, καθώς προκαλεί συχνά κακώς αναγνώσιμο κώδικα. Ωστόσο, " "είναι εντάξει να τον χρησιμοποιήσετε για να αποθηκεύσετε την πληκτρολόγηση " "σε διαδραστικές περιόδους σύνδεσης." #: tutorial/modules.rst:118 msgid "" "If the module name is followed by :keyword:`!as`, then the name following :" "keyword:`!as` is bound directly to the imported module." msgstr "" "Εάν το όνομα του module ακολουθείται από :keyword:`!as`, τότε το όνομα που " "ακολουθεί :keyword:`!as` συνδέεται απευθείας με το εισαγόμενο module." #: tutorial/modules.rst:123 msgid "" ">>> import fibo as fib\n" ">>> fib.fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" ">>> import fibo as fib\n" ">>> fib.fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: tutorial/modules.rst:127 msgid "" "This is effectively importing the module in the same way that ``import " "fibo`` will do, with the only difference of it being available as ``fib``." msgstr "" "Αυτό ουσιαστικά εισάγει το module με τον ίδιο τρόπο που θα κάνει το ``import " "fibo`` , με τη μόνη διαφορά ότι είναι διαθέσιμο ως ``fib``." #: tutorial/modules.rst:130 msgid "" "It can also be used when utilising :keyword:`from` with similar effects::" msgstr "" "Μπορεί επίσης να χρησιμοποιηθεί όταν χρησιμοποιείτε :keyword:`from` με " "παρόμοια εφέ::" #: tutorial/modules.rst:132 msgid "" ">>> from fibo import fib as fibonacci\n" ">>> fibonacci(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" ">>> from fibo import fib as fibonacci\n" ">>> fibonacci(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: tutorial/modules.rst:139 msgid "" "For efficiency reasons, each module is only imported once per interpreter " "session. Therefore, if you change your modules, you must restart the " "interpreter -- or, if it's just one module you want to test interactively, " "use :func:`importlib.reload`, e.g. ``import importlib; importlib." "reload(modulename)``." msgstr "" "Για λόγους αποτελεσματικότητας, κάθε module εισάγεται μόνο μία φορά ανά " "περίοδο λειτουργίες του interpreter. Επομένως, εάν αλλάξετε τα modules σας, " "πρέπει να επανεκκινήσετε τον διερμηνέα -- ή, εάν είναι μόνο ένα module που " "θέλετε να δοκιμάσετε διαδραστικά, χρησιμοποιήστε το :func:`importlib." "reload`, π.χ. ``import importlib; importlib.reload(modulename)``." #: tutorial/modules.rst:149 msgid "Executing modules as scripts" msgstr "Εκτέλεση modules ως scripts" #: tutorial/modules.rst:151 msgid "When you run a Python module with ::" msgstr "Όταν εκτελείτε ένα Python module με::" #: tutorial/modules.rst:153 msgid "python fibo.py " msgstr "python fibo.py " #: tutorial/modules.rst:155 msgid "" "the code in the module will be executed, just as if you imported it, but " "with the ``__name__`` set to ``\"__main__\"``. That means that by adding " "this code at the end of your module::" msgstr "" "ο κώδικας στο module θα εκτελεστεί, ακριβώς σαν να τον εισαγάγετε, αλλά με " "το ``name`` να έχει οριστεί σε ``\"__main__\"``. Αυτό σημαίνει ότι " "προσθέτοντας αυτόν τον κώδικα στο τέλος του module σας::" #: tutorial/modules.rst:159 msgid "" "if __name__ == \"__main__\":\n" " import sys\n" " fib(int(sys.argv[1]))" msgstr "" "if __name__ == \"__main__\":\n" " import sys\n" " fib(int(sys.argv[1]))" #: tutorial/modules.rst:163 msgid "" "you can make the file usable as a script as well as an importable module, " "because the code that parses the command line only runs if the module is " "executed as the \"main\" file:" msgstr "" "μπορείτε να κάνετε το αρχείο χρησιμοποιήσιμο ως script καθώς και ως module " "που μπορεί να εισαχθεί, επειδή ο κώδικας που αναλύει την γραμμή εντολών " "εκτελείται μόνο εάν το module εκτελείται ως το \"main\" αρχείο:" #: tutorial/modules.rst:167 msgid "" "$ python fibo.py 50\n" "0 1 1 2 3 5 8 13 21 34" msgstr "" "$ python fibo.py 50\n" "0 1 1 2 3 5 8 13 21 34" #: tutorial/modules.rst:172 msgid "If the module is imported, the code is not run::" msgstr "Εάν το module έχει εισαχθεί, ο κώδικας δεν εκτελείται::" #: tutorial/modules.rst:174 msgid "" ">>> import fibo\n" ">>>" msgstr "" ">>> import fibo\n" ">>>" #: tutorial/modules.rst:177 msgid "" "This is often used either to provide a convenient user interface to a " "module, or for testing purposes (running the module as a script executes a " "test suite)." msgstr "" "Αυτό χρησιμοποιείται συχνά είτε για την παροχή ενός βολικού user interface " "σε ένα module, είτε για σκοπούς δοκιμής (η εκτέλεση του module ως script " "εκτελεί μια δοκιμαστική σουίτα)." #: tutorial/modules.rst:184 msgid "The Module Search Path" msgstr "Το Search Path του Module" #: tutorial/modules.rst:188 msgid "" "When a module named :mod:`!spam` is imported, the interpreter first searches " "for a built-in module with that name. These module names are listed in :data:" "`sys.builtin_module_names`. If not found, it then searches for a file named :" "file:`spam.py` in a list of directories given by the variable :data:`sys." "path`. :data:`sys.path` is initialized from these locations:" msgstr "" "Όταν εισάγετε ένα module με το όνομα :mod:`!spam`, ο interpreter αναζητά " "πρώτα ένα ενσωματωμένο module με αυτό το όνομα. Αυτά τα ονόματα των module " "παρατίθενται στο :data:`sys.builtin_module_names`. Εάν δεν βρεθεί, τότε " "αναζητά ένα αρχείο με το όνομα :file:`spam.py` σε μια λίστα καταλόγων που " "δίνονται από τη μεταβλητή :data:`sys.path`. Το :data:`sys.path` " "αρχικοποιείται από αυτές τις θέσεις:" #: tutorial/modules.rst:194 msgid "" "The directory containing the input script (or the current directory when no " "file is specified)." msgstr "" "Ο κατάλογος που περιέχει το input script (ή τον τρέχοντα κατάλογο όταν δεν " "έχει καθοριστεί αρχείο)." #: tutorial/modules.rst:196 msgid "" ":envvar:`PYTHONPATH` (a list of directory names, with the same syntax as the " "shell variable :envvar:`PATH`)." msgstr "" ":envvar:`PYTHONPATH` (μια λίστα ονομάτων καταλόγου, με την ίδια σύνταξη με " "τη μεταβλητή του shell :envvar:`PATH`)." #: tutorial/modules.rst:198 msgid "" "The installation-dependent default (by convention including a ``site-" "packages`` directory, handled by the :mod:`site` module)." msgstr "" "Η προεπιλογή που εξαρτάται από την εγκατάσταση (κατά σύμβαση, " "συμπεριλαμβανομένου ενός καταλόγου ``site-packages``, που χειρίζεται το " "module :mod:`site`." #: tutorial/modules.rst:201 msgid "More details are at :ref:`sys-path-init`." msgstr "Περισσότερες λεπτομέρειες βρίσκονται στο :ref:`sys-path-init`." #: tutorial/modules.rst:204 msgid "" "On file systems which support symlinks, the directory containing the input " "script is calculated after the symlink is followed. In other words the " "directory containing the symlink is **not** added to the module search path." msgstr "" "Στα συστήματα αρχείων που υποστηρίζουν symlinks, ο κατάλογο που περιέχει το " "input script υπολογίζεται αφού ακολουθηθεί το symlink. Με άλλα λόγια, ο " "κατάλογος που περιέχει το symlink **δεν** προστίθεται στη διαδρομή " "αναζήτησης του module." #: tutorial/modules.rst:208 msgid "" "After initialization, Python programs can modify :data:`sys.path`. The " "directory containing the script being run is placed at the beginning of the " "search path, ahead of the standard library path. This means that scripts in " "that directory will be loaded instead of modules of the same name in the " "library directory. This is an error unless the replacement is intended. See " "section :ref:`tut-standardmodules` for more information." msgstr "" "Μετά την προετοιμασία, τα προγράμματα Python μπορούν να τροποποιήσουν το :" "data:`sys.path`. Ο κατάλογος που περιέχει το script που εκτελείται " "τοποθετείται στην αρχή της διαδρομής αναζήτησης , μπροστά από την τυπική " "διαδρομή της βιβλιοθήκης. Αυτό σημαίνει ότι τα scripts σε αυτόν τον κατάλογο " "θα είναι φορτωμένα αντί για τα modules με το ίδιο όνομα στον κατάλογο μιας " "βιβλιοθήκης. Αυτό είναι ένα σφάλμα, εκτός εάν προορίζεται η αντικατάσταση. " "Βλ. την ενότητα :ref:`tut-standardmodules` για περισσότερες πληροφορίες." #: tutorial/modules.rst:221 msgid "\"Compiled\" Python files" msgstr "\"Compiled\" Python αρχεία" #: tutorial/modules.rst:223 msgid "" "To speed up loading modules, Python caches the compiled version of each " "module in the ``__pycache__`` directory under the name :file:`module." "{version}.pyc`, where the version encodes the format of the compiled file; " "it generally contains the Python version number. For example, in CPython " "release 3.3 the compiled version of spam.py would be cached as ``__pycache__/" "spam.cpython-33.pyc``. This naming convention allows compiled modules from " "different releases and different versions of Python to coexist." msgstr "" "Για να επιταχύνει τη φόρτωση modules, η Python κάνει cache την compiled " "έκδοση κάθε module στον κατάλογο ``__pycache__`` κάτω από το όνομα :file:" "`module.{version}.pyc`, όπου η έκδοση κωδικοποιεί τη μορφή του compiled " "αρχείου∙ γενικά περιέχει τον αριθμό έκδοσης της Python. Για παράδειγμα, " "στην έκδοση CPython 3.3 η compiled έκδοση του spam.py θα αποθηκευτεί ως " "``__pycache__/spam.cpython-33.pyc``. Αυτή η σύμβαση ονομασίας, επιτρέπει σε " "compiled modules από διαφορετικές εκδόσεις και διαφορετικές εκδόσεις της " "Python να συνυπάρχουν." #: tutorial/modules.rst:231 msgid "" "Python checks the modification date of the source against the compiled " "version to see if it's out of date and needs to be recompiled. This is a " "completely automatic process. Also, the compiled modules are platform-" "independent, so the same library can be shared among systems with different " "architectures." msgstr "" "Η Python ελέγχει την ημερομηνία τροποποίησης του πηγαίου έναντι της compiled " "έκδοσης για να δει εάν είναι ξεπερασμένη και χρειάζεται να γίνει compile " "ξανά. Αυτή είναι μια εντελώς αυτόματη διαδικασία. Επίσης, τα compiled " "modules είναι ανεξάρτητες από πλατφόρμα, επομένως η ίδια βιβλιοθήκη μπορεί " "να κοινοποιηθεί ανάμεσα σε συστήματα με διαφορετικές αρχιτεκτονικές." #: tutorial/modules.rst:236 msgid "" "Python does not check the cache in two circumstances. First, it always " "recompiles and does not store the result for the module that's loaded " "directly from the command line. Second, it does not check the cache if " "there is no source module. To support a non-source (compiled only) " "distribution, the compiled module must be in the source directory, and there " "must not be a source module." msgstr "" "Η Python δεν ελέγχει την cache σε δύο περιπτώσεις. Πρώτον, πάντα κάνει " "compile ξανά και δεν αποθηκεύει το αποτέλεσμα για το module που φορτώνεται " "απευθείας από τη γραμμή εντολών. Δεύτερον, δεν ελέγχει τη μνήμη cache εάν " "δεν υπάρχει το source module. Για να υποστηρίξετε μια διανομή χωρίς πηγαίο " "(compiled μόνο), το compiled module πρέπει να βρίσκεται στον source κατάλογο " "και δεν πρέπει να υπάρχει source module." #: tutorial/modules.rst:243 msgid "Some tips for experts:" msgstr "Μερικές συμβουλές για ειδικούς:" #: tutorial/modules.rst:245 msgid "" "You can use the :option:`-O` or :option:`-OO` switches on the Python command " "to reduce the size of a compiled module. The ``-O`` switch removes assert " "statements, the ``-OO`` switch removes both assert statements and __doc__ " "strings. Since some programs may rely on having these available, you should " "only use this option if you know what you're doing. \"Optimized\" modules " "have an ``opt-`` tag and are usually smaller. Future releases may change " "the effects of optimization." msgstr "" "Μπορείτε να χρησιμοποιήσετε τους switches :option:`-O` ή :option:`-OO` στην " "εντολή Python για να μειώσετε το μέγεθος ενός compiled module. Το ``-O`` " "switch αφαιρεί τις assert statements, το ``-OO`` switch αφαιρεί τόσο τα " "assert statements όσο και τις __doc__ συμβολοσειρές . Εφόσον ορισμένα " "προγράμματα μπορεί να βασίζονται στην ύπαρξη αυτών των διαθέσιμων, θα πρέπει " "να χρησιμοποιήσετε αυτήν την επιλογή μόνο εάν γνωρίζετε τι κάνετε. " "\"Optimized\" modules έχουν ένα ``opt-`` tag και είναι συνήθως μικρότερες. " "Οι μελλοντικές εκδόσεις μπορεί να αλλάξουν τα αποτελέσματα της " "βελτιστοποίησης." #: tutorial/modules.rst:253 msgid "" "A program doesn't run any faster when it is read from a ``.pyc`` file than " "when it is read from a ``.py`` file; the only thing that's faster about ``." "pyc`` files is the speed with which they are loaded." msgstr "" "Ένα πρόγραμμα δεν εκτελείται πιο γρήγορα όταν διαβάζεται από ένα αρχείο ``." "pyc`` από ό,τι όταν διαβάζεται από ένα αρχείο ``.py`` ∙ το μόνο πράγμα που " "είναι πιο γρήγορο από τα αρχεία ``.pyc`` είναι η ταχύτητα με την οποία " "φορτώνονται." #: tutorial/modules.rst:257 msgid "" "The module :mod:`compileall` can create .pyc files for all modules in a " "directory." msgstr "" "Το module :mod:`compileall` μπορεί να δημιουργήσει αρχεία .pyc για όλα τα " "modules σε ένα κατάλογο." #: tutorial/modules.rst:260 msgid "" "There is more detail on this process, including a flow chart of the " "decisions, in :pep:`3147`." msgstr "" "Υπάρχουν περισσότερες λεπτομέρειες σχετικά με αυτή τη διαδικασία, " "συμπεριλαμβανομένου ενός διαγράμματος ροής των αποφάσεων, στο :pep:`3147`." #: tutorial/modules.rst:267 msgid "Standard Modules" msgstr "Standard Modules" #: tutorial/modules.rst:271 msgid "" "Python comes with a library of standard modules, described in a separate " "document, the Python Library Reference (\"Library Reference\" hereafter). " "Some modules are built into the interpreter; these provide access to " "operations that are not part of the core of the language but are " "nevertheless built in, either for efficiency or to provide access to " "operating system primitives such as system calls. The set of such modules " "is a configuration option which also depends on the underlying platform. " "For example, the :mod:`winreg` module is only provided on Windows systems. " "One particular module deserves some attention: :mod:`sys`, which is built " "into every Python interpreter. The variables ``sys.ps1`` and ``sys.ps2`` " "define the strings used as primary and secondary prompts::" msgstr "" "Η Python συνοδεύεται από μια βιβλιοθήκη standard modules, η οποία " "περιγράφεται σε ένα ξεχωριστό έγγραφο, την Αναφορά Βιβλιοθήκης Python " "(\"Library Reference\" hereafter). Ορισμένα modules είναι ενσωματωμένα στον " "interpreter∙ αυτές παρέχουν πρόσβαση σε λειτουργίες που δεν αποτελούν μέρος " "του πυρήνα της γλώσσας, αλλά εντούτοις είναι ενσωματωμένα, είτε για " "αποτελεσματικότητα είτε για την παροχή πρόσβασης σε πρωτόγονα στοιχεία του " "λειτουργικού συστήματος όπως οι κλήσεις συστήματος. Το σύνολο τέτοιων " "modules είναι μια επιλογή διαμόρφωσης που εξαρτάται επίσης από την " "υποκείμενη πλατφόρμα. Για παράδειγμα, το module :mod:`winreg` παρέχεται " "μόνο σε συστήματα Windows. Ένα συγκεκριμένο module που αξίζει κάποια " "προσοχή είναι το :mod:`sys`, το οποίο είναι ενσωματωμένο στον interpreter " "της Python. Οι μεταβλητές ``sys.ps1`` και ``sys.ps2`` ορίζουν τις " "συμβολοσειρές που χρησιμοποιούνται ως κύρια και δευτερεύοντα prompts::" #: tutorial/modules.rst:283 msgid "" ">>> import sys\n" ">>> sys.ps1\n" "'>>> '\n" ">>> sys.ps2\n" "'... '\n" ">>> sys.ps1 = 'C> '\n" "C> print('Yuck!')\n" "Yuck!\n" "C>" msgstr "" ">>> import sys\n" ">>> sys.ps1\n" "'>>> '\n" ">>> sys.ps2\n" "'... '\n" ">>> sys.ps1 = 'C> '\n" "C> print('Yuck!')\n" "Yuck!\n" "C>" #: tutorial/modules.rst:294 msgid "" "These two variables are only defined if the interpreter is in interactive " "mode." msgstr "" "Αυτές οι δύο μεταβλητές ορίζονται μόνο εάν ο interpreter βρίσκεται σε " "διαδραστική λειτουργία." #: tutorial/modules.rst:296 msgid "" "The variable ``sys.path`` is a list of strings that determines the " "interpreter's search path for modules. It is initialized to a default path " "taken from the environment variable :envvar:`PYTHONPATH`, or from a built-in " "default if :envvar:`PYTHONPATH` is not set. You can modify it using " "standard list operations::" msgstr "" "Η μεταβλητή ``sys.path`` είναι μια λίστα συμβολοσειρών που καθορίζει τη " "διαδρομή αναζήτησης του διερμηνέα για modules. Αρχικοποιείται σε μια " "προεπιλεγμένη διαδρομή που λαμβάνεται από τη μεταβλητή περιβάλλοντος :envvar:" "`PYTHONPATH`, ή από μια ενσωματωμένη προεπιλογή εάν το :envvar:`PYTHONPATH` " "δεν έχει οριστεί. Μπορείτε να το τροποποιήσετε χρησιμοποιώντας τυπικές " "λειτουργίες λίστας::" #: tutorial/modules.rst:302 msgid "" ">>> import sys\n" ">>> sys.path.append('/ufs/guido/lib/python')" msgstr "" ">>> import sys\n" ">>> sys.path.append('/ufs/guido/lib/python')" #: tutorial/modules.rst:309 msgid "The :func:`dir` Function" msgstr "Η συνάρτηση :func:`dir`" #: tutorial/modules.rst:311 msgid "" "The built-in function :func:`dir` is used to find out which names a module " "defines. It returns a sorted list of strings::" msgstr "" "Η ενσωματωμένη συνάρτηση :func:`dir` χρησιμοποιείται για να ανακαλύψει ποια " "ονόματα ορίζει ένα module. Επιστρέφει μια ταξινομημένη λίστα συμβολοσειρών::" #: tutorial/modules.rst:314 msgid "" ">>> import fibo, sys\n" ">>> dir(fibo)\n" "['__name__', 'fib', 'fib2']\n" ">>> dir(sys)\n" "['__breakpointhook__', '__displayhook__', '__doc__', '__excepthook__',\n" " '__interactivehook__', '__loader__', '__name__', '__package__', " "'__spec__',\n" " '__stderr__', '__stdin__', '__stdout__', '__unraisablehook__',\n" " '_clear_type_cache', '_current_frames', '_debugmallocstats', '_framework',\n" " '_getframe', '_git', '_home', '_xoptions', 'abiflags', 'addaudithook',\n" " 'api_version', 'argv', 'audit', 'base_exec_prefix', 'base_prefix',\n" " 'breakpointhook', 'builtin_module_names', 'byteorder', 'call_tracing',\n" " 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', " "'exc_info',\n" " 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info',\n" " 'float_repr_style', 'get_asyncgen_hooks', " "'get_coroutine_origin_tracking_depth',\n" " 'getallocatedblocks', 'getdefaultencoding', 'getdlopenflags',\n" " 'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile',\n" " 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval',\n" " 'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info',\n" " 'intern', 'is_finalizing', 'last_traceback', 'last_type', 'last_value',\n" " 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks',\n" " 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', " "'pycache_prefix',\n" " 'set_asyncgen_hooks', 'set_coroutine_origin_tracking_depth', " "'setdlopenflags',\n" " 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', " "'stderr',\n" " 'stdin', 'stdout', 'thread_info', 'unraisablehook', 'version', " "'version_info',\n" " 'warnoptions']" msgstr "" ">>> import fibo, sys\n" ">>> dir(fibo)\n" "['__name__', 'fib', 'fib2']\n" ">>> dir(sys)\n" "['__breakpointhook__', '__displayhook__', '__doc__', '__excepthook__',\n" " '__interactivehook__', '__loader__', '__name__', '__package__', " "'__spec__',\n" " '__stderr__', '__stdin__', '__stdout__', '__unraisablehook__',\n" " '_clear_type_cache', '_current_frames', '_debugmallocstats', '_framework',\n" " '_getframe', '_git', '_home', '_xoptions', 'abiflags', 'addaudithook',\n" " 'api_version', 'argv', 'audit', 'base_exec_prefix', 'base_prefix',\n" " 'breakpointhook', 'builtin_module_names', 'byteorder', 'call_tracing',\n" " 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', " "'exc_info',\n" " 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info',\n" " 'float_repr_style', 'get_asyncgen_hooks', " "'get_coroutine_origin_tracking_depth',\n" " 'getallocatedblocks', 'getdefaultencoding', 'getdlopenflags',\n" " 'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile',\n" " 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval',\n" " 'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info',\n" " 'intern', 'is_finalizing', 'last_traceback', 'last_type', 'last_value',\n" " 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks',\n" " 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', " "'pycache_prefix',\n" " 'set_asyncgen_hooks', 'set_coroutine_origin_tracking_depth', " "'setdlopenflags',\n" " 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', " "'stderr',\n" " 'stdin', 'stdout', 'thread_info', 'unraisablehook', 'version', " "'version_info',\n" " 'warnoptions']" #: tutorial/modules.rst:340 msgid "" "Without arguments, :func:`dir` lists the names you have defined currently::" msgstr "" "Χωρίς ορίσματα, η :func:`dir` παραθέτει τα ονόματα που έχετε ορίσει αυτήν τη " "στιγμή::" #: tutorial/modules.rst:342 msgid "" ">>> a = [1, 2, 3, 4, 5]\n" ">>> import fibo\n" ">>> fib = fibo.fib\n" ">>> dir()\n" "['__builtins__', '__name__', 'a', 'fib', 'fibo', 'sys']" msgstr "" ">>> a = [1, 2, 3, 4, 5]\n" ">>> import fibo\n" ">>> fib = fibo.fib\n" ">>> dir()\n" "['__builtins__', '__name__', 'a', 'fib', 'fibo', 'sys']" #: tutorial/modules.rst:348 msgid "" "Note that it lists all types of names: variables, modules, functions, etc." msgstr "" "Λάβετε υπόψη ότι παραθέτει όλους τους τύπους ονομάτων: μεταβλητές, modules, " "συναρτήσεις, κ.λπ." #: tutorial/modules.rst:352 msgid "" ":func:`dir` does not list the names of built-in functions and variables. If " "you want a list of those, they are defined in the standard module :mod:" "`builtins`::" msgstr "" "Η :func:`dir` δεν παραθέτει τα ονόματα των ενσωματωμένων συναρτήσεων και " "μεταβλητών. Εάν θέλετε μια λίστα από αυτές, ορίζονται στην τυπική ενότητα :" "mod:`builtins`::" #: tutorial/modules.rst:356 msgid "" ">>> import builtins\n" ">>> dir(builtins)\n" "['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException',\n" " 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning',\n" " 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError',\n" " 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning',\n" " 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False',\n" " 'FileExistsError', 'FileNotFoundError', 'FloatingPointError',\n" " 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError',\n" " 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError',\n" " 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError',\n" " 'MemoryError', 'NameError', 'None', 'NotADirectoryError', " "'NotImplemented',\n" " 'NotImplementedError', 'OSError', 'OverflowError',\n" " 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError',\n" " 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning',\n" " 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError',\n" " 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError',\n" " 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError',\n" " 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning',\n" " 'ValueError', 'Warning', 'ZeroDivisionError', '_', '__build_class__',\n" " '__debug__', '__doc__', '__import__', '__name__', '__package__', 'abs',\n" " 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray', 'bytes', 'callable',\n" " 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits',\n" " 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit',\n" " 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr',\n" " 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass',\n" " 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview',\n" " 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property',\n" " 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',\n" " 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars',\n" " 'zip']" msgstr "" ">>> import builtins\n" ">>> dir(builtins)\n" "['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException',\n" " 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning',\n" " 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError',\n" " 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning',\n" " 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False',\n" " 'FileExistsError', 'FileNotFoundError', 'FloatingPointError',\n" " 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError',\n" " 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError',\n" " 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError',\n" " 'MemoryError', 'NameError', 'None', 'NotADirectoryError', " "'NotImplemented',\n" " 'NotImplementedError', 'OSError', 'OverflowError',\n" " 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError',\n" " 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning',\n" " 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError',\n" " 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError',\n" " 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError',\n" " 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning',\n" " 'ValueError', 'Warning', 'ZeroDivisionError', '_', '__build_class__',\n" " '__debug__', '__doc__', '__import__', '__name__', '__package__', 'abs',\n" " 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray', 'bytes', 'callable',\n" " 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits',\n" " 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit',\n" " 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr',\n" " 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass',\n" " 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview',\n" " 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property',\n" " 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',\n" " 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars',\n" " 'zip']" #: tutorial/modules.rst:391 msgid "Packages" msgstr "Πακέτα" #: tutorial/modules.rst:393 msgid "" "Packages are a way of structuring Python's module namespace by using " "\"dotted module names\". For example, the module name :mod:`!A.B` " "designates a submodule named ``B`` in a package named ``A``. Just like the " "use of modules saves the authors of different modules from having to worry " "about each other's global variable names, the use of dotted module names " "saves the authors of multi-module packages like NumPy or Pillow from having " "to worry about each other's module names." msgstr "" "Τα πακέτα είναι ένας τρόπος δόμησης του namespace του module χρησιμοποιώντας " "\"dotted module names\". Για παράδειγμα, το όνομα του module :mod:`!A.B` " "υποδηλώνει ένα submodule με όνομα ``B`` σε ένα πακέτο με όνομα ``A``. " "Ακριβώς όπως η χρήση των modules σώζει τους δημιουργούς διαφορετικών modules " "να ανησυχούν ο ένας για τα καθολικά ονόματα μεταβλητών του άλλου, η χρήση " "dotted module ονομάτων σώζει τους δημιουργούς των multi-module πακέτων όπως " "το NumbPY ή το Pillow από το να χρειάζεται να ανησυχούν ο ένας για τα module " "ονόματα του άλλου." #: tutorial/modules.rst:401 msgid "" "Suppose you want to design a collection of modules (a \"package\") for the " "uniform handling of sound files and sound data. There are many different " "sound file formats (usually recognized by their extension, for example: :" "file:`.wav`, :file:`.aiff`, :file:`.au`), so you may need to create and " "maintain a growing collection of modules for the conversion between the " "various file formats. There are also many different operations you might " "want to perform on sound data (such as mixing, adding echo, applying an " "equalizer function, creating an artificial stereo effect), so in addition " "you will be writing a never-ending stream of modules to perform these " "operations. Here's a possible structure for your package (expressed in " "terms of a hierarchical filesystem):" msgstr "" "Ας υποθέσουμε ότι θέλετε να σχεδιάσετε μια συλλογή από module (ένα " "\"πακέτο\") για τον ομοιόμορφο χειρισμό αρχείων ήχου και δεδομένων ήχου. " "Υπάρχουν πολλές διαφορετικές μορφές αρχείων ήχου (που συνήθως αναγνωρίζονται " "από την επέκτασή τους, για παράδειγμα: :file:`.wav`, :file:`.aiff`, :file:`." "au`), επομένως μπορεί να χρειαστεί να δημιουργήσετε και να διατηρήσετε μια " "αυξανόμενη συλλογή λειτουργιών για τη μετατροπή μεταξύ των διαφόρων μορφών " "αρχείων. Υπάρχουν επίσης πολλές διαφορετικές λειτουργίες που μπορεί να " "θέλετε να εκτελέσετε σε δεδομένα ήχου (όπως μίξη, προσθήκη ηχούς, εφαρμογή " "μιας λειτουργίας ισοσταθμιστή, δημιουργία τεχνητού στερεοφωνικού εφέ), " "επομένως επιπλέον θα γράφετε μια ατελείωτη ροή από modules για να εκτελέσετε " "αυτές τις λειτουργίες. Ακολουθεί μια πιθανή δομή για το πακέτο σας (που " "εκφράζεται ως ιεραρχικό σύστημα αρχείων):" #: tutorial/modules.rst:412 msgid "" "sound/ Top-level package\n" " __init__.py Initialize the sound package\n" " formats/ Subpackage for file format conversions\n" " __init__.py\n" " wavread.py\n" " wavwrite.py\n" " aiffread.py\n" " aiffwrite.py\n" " auread.py\n" " auwrite.py\n" " ...\n" " effects/ Subpackage for sound effects\n" " __init__.py\n" " echo.py\n" " surround.py\n" " reverse.py\n" " ...\n" " filters/ Subpackage for filters\n" " __init__.py\n" " equalizer.py\n" " vocoder.py\n" " karaoke.py\n" " ..." msgstr "" "sound/ Top-level package\n" " __init__.py Initialize the sound package\n" " formats/ Subpackage for file format conversions\n" " __init__.py\n" " wavread.py\n" " wavwrite.py\n" " aiffread.py\n" " aiffwrite.py\n" " auread.py\n" " auwrite.py\n" " ...\n" " effects/ Subpackage for sound effects\n" " __init__.py\n" " echo.py\n" " surround.py\n" " reverse.py\n" " ...\n" " filters/ Subpackage for filters\n" " __init__.py\n" " equalizer.py\n" " vocoder.py\n" " karaoke.py\n" " ..." #: tutorial/modules.rst:438 msgid "" "When importing the package, Python searches through the directories on ``sys." "path`` looking for the package subdirectory." msgstr "" "Κατά την εισαγωγή του πακέτου, η Python πραγματοποιεί αναζήτηση στους " "καταλόγους στο ``sys.path`` αναζητώντας τον υποκατάλογο του πακέτου." #: tutorial/modules.rst:441 msgid "" "The :file:`__init__.py` files are required to make Python treat directories " "containing the file as packages (unless using a :term:`namespace package`, a " "relatively advanced feature). This prevents directories with a common name, " "such as ``string``, from unintentionally hiding valid modules that occur " "later on the module search path. In the simplest case, :file:`__init__.py` " "can just be an empty file, but it can also execute initialization code for " "the package or set the ``__all__`` variable, described later." msgstr "" "Τα :file:`__init__.py` αρχεία απαιτούνται για να κάνει την Python να " "αντιμετωπίζει του καταλόγου που περιέχουν το αρχείο ως πακέτα (εκτός εάν " "χρησιμοποιεί ένα :term:`namespace package`, ένα σχετικά προηγμένο " "χαρακτηριστικό). Αυτό αποτρέπει τους καταλόγους με κοινό όνομα, όπως π.χ. ως " "``string``, από την ακούσια απόκρυψη έγκυρων modules που εμφανίζονται " "αργότερα στο path αναζήτησης του module. Στην απλούστερη περίπτωση, το :file:" "`__init__.py` μπορεί απλώς να είναι κενό αρχείο, αλλά μπορεί επίσης να " "εκτελέσει initialization κώδικα για το πακέτο ή να ορίσει την μεταβλητή " "``__all__``, που περιγράφεται αργότερα." #: tutorial/modules.rst:449 msgid "" "Users of the package can import individual modules from the package, for " "example::" msgstr "" "Οι χρήστες του πακέτου μπορούν να εισάγουν μεμονωμένα module από το πακέτο, " "για παράδειγμα::" #: tutorial/modules.rst:452 msgid "import sound.effects.echo" msgstr "import sound.effects.echo" #: tutorial/modules.rst:454 msgid "" "This loads the submodule :mod:`!sound.effects.echo`. It must be referenced " "with its full name. ::" msgstr "" "Αυτό φορτώνει το submodule :mod:`!sound.effects.echo`. Πρέπει να αναφέρεται " "με το πλήρες όνομά του. ::" #: tutorial/modules.rst:457 msgid "sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)" msgstr "sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)" #: tutorial/modules.rst:459 msgid "An alternative way of importing the submodule is::" msgstr "Ένα εναλλακτικός τρόπος για την εισαγωγή του submodule είναι::" #: tutorial/modules.rst:461 msgid "from sound.effects import echo" msgstr "from sound.effects import echo" #: tutorial/modules.rst:463 msgid "" "This also loads the submodule :mod:`!echo`, and makes it available without " "its package prefix, so it can be used as follows::" msgstr "" "Αυτό φορτώνει επίσης το submodule :mod:`!echo`, και την καθιστά διαθέσιμη " "χωρίς το πρόθεμα πακέτου, ώστε να μπορεί να χρησιμοποιηθεί ως εξής::" #: tutorial/modules.rst:466 msgid "echo.echofilter(input, output, delay=0.7, atten=4)" msgstr "echo.echofilter(input, output, delay=0.7, atten=4)" #: tutorial/modules.rst:468 msgid "" "Yet another variation is to import the desired function or variable " "directly::" msgstr "" "Μια άλλη παραλλαγή είναι η απευθείας εισαγωγή της επιθυμητής συνάρτησης ή " "μεταβλητής::" #: tutorial/modules.rst:470 msgid "from sound.effects.echo import echofilter" msgstr "from sound.effects.echo import echofilter" #: tutorial/modules.rst:472 msgid "" "Again, this loads the submodule :mod:`!echo`, but this makes its function :" "func:`!echofilter` directly available::" msgstr "" "Και πάλι, αυτό φορτώνει το submodule :mod:`!echo`, αλλά αυτό κάνει τη " "συνάρτηση της :func:`!echofilter` άμεσα διαθέσιμη::" #: tutorial/modules.rst:475 msgid "echofilter(input, output, delay=0.7, atten=4)" msgstr "echofilter(input, output, delay=0.7, atten=4)" #: tutorial/modules.rst:477 msgid "" "Note that when using ``from package import item``, the item can be either a " "submodule (or subpackage) of the package, or some other name defined in the " "package, like a function, class or variable. The ``import`` statement first " "tests whether the item is defined in the package; if not, it assumes it is a " "module and attempts to load it. If it fails to find it, an :exc:" "`ImportError` exception is raised." msgstr "" "Λάβετε υπόψη ότι όταν χρησιμοποιείτε ``from package import item``, το " "στοιχείο μπορεί να είναι είτε submodule (ή υποπακέτο) του πακέτου ή κάποιο " "άλλο όνομα που ορίζεται στο πακέτο, όπως μια συνάρτηση, κλάση ή μεταβλητή. Η " "``import`` δήλωση ελέγχει πρώτα εάν το στοιχείο έχει οριστεί στο πακέτο, εάν " "όχι, υποθέτει ότι είναι ένα module και επιχειρεί να το φορτώσει , αν δεν το " "βρει δημιουργεί η εξαίρεση :exc:`ImportError`." #: tutorial/modules.rst:484 msgid "" "Contrarily, when using syntax like ``import item.subitem.subsubitem``, each " "item except for the last must be a package; the last item can be a module or " "a package but can't be a class or function or variable defined in the " "previous item." msgstr "" "Αντίθετα, όταν χρησιμοποιείται σύνταξη όπως ``import item.subitem." "subsubitem``, κάθε στοιχείο εκτός από αυτό το τελευταίο πρέπει να είναι " "πακέτο∙ το τελευταίο στοιχείο μπορεί να είναι ένα module ή ένα πακέτο αλλά " "δεν μπορεί να είναι μια κλάση ή συνάρτηση ή μεταβλητή που ορίζεται από " "προηγούμενο στοιχείο." #: tutorial/modules.rst:493 msgid "Importing \\* From a Package" msgstr "Εισάγοντας \\* από ένα Πακέτο" #: tutorial/modules.rst:497 msgid "" "Now what happens when the user writes ``from sound.effects import *``? " "Ideally, one would hope that this somehow goes out to the filesystem, finds " "which submodules are present in the package, and imports them all. This " "could take a long time and importing sub-modules might have unwanted side-" "effects that should only happen when the sub-module is explicitly imported." msgstr "" "Τώρα τι συμβαίνει όταν ο χρήστης γράφει ``from sound.effects import *``; " "Ιδανικά, θα ήλπιζε κανείς ότι αυτό θα βγει με κάποιο τρόπο στο σύστημα " "αρχείων, θα βρει κάποια submodules που υπάρχουν το πακέτο, και θα τα εισάγει " "όλα σε αυτό. Αυτό θα μπορούσε να πάρει πολύ χρόνο και η εισαγωγή submodules " "μπορεί να έχει ανεπιθύμητες παρενέργειες που θα έπρεπε να συμβούν όταν το " "submodule εισάγεται ρητά." #: tutorial/modules.rst:503 msgid "" "The only solution is for the package author to provide an explicit index of " "the package. The :keyword:`import` statement uses the following convention: " "if a package's :file:`__init__.py` code defines a list named ``__all__``, it " "is taken to be the list of module names that should be imported when ``from " "package import *`` is encountered. It is up to the package author to keep " "this list up-to-date when a new version of the package is released. Package " "authors may also decide not to support it, if they don't see a use for " "importing \\* from their package. For example, the file :file:`sound/" "effects/__init__.py` could contain the following code::" msgstr "" "Η μόνη λύση είναι να παρέχει ο συντάκτης του πακέτου ένα ρητό ευρετήριο του " "πακέτου. Η δήλωση :keyword:`import` χρησιμοποιεί την ακόλουθη σύμβαση: εάν " "ο κώδικας :file:`__init__.py` του πακέτου ορίζει μια λίστα με το όνομα " "``__all__``, θεωρείται ότι είναι η λίστα με τα ονόματα των modules που θα " "πρέπει να εισαχθούν όταν συναντήσετε ``from package import *``. Είναι στην " "διακριτή ευχέρεια του συντάκτη του πακέτου να διατηρεί αυτή τη λίστα " "ενημερωμένη, όταν κυκλοφορήσει μια νέα έκδοση του πακέτου. Οι συντάκτες του " "πακέτου ενδέχεται επίσης να αποφασίσουν να μην το υποστηρίξουν, εάν δεν " "βλέπουν ότι χρησιμοποιείται η εισαγωγή του \\* από το πακέτο τους. Για " "παράδειγμα το αρχείο :file:`sound/effects/__init__.py` θα μπορούσε να " "περιέχει τον ακόλουθο κώδικα::" #: tutorial/modules.rst:513 msgid "__all__ = [\"echo\", \"surround\", \"reverse\"]" msgstr "__all__ = [\"echo\", \"surround\", \"reverse\"]" #: tutorial/modules.rst:515 msgid "" "This would mean that ``from sound.effects import *`` would import the three " "named submodules of the :mod:`!sound.effects` package." msgstr "" "Αυτό θα σήμαινε ότι ``from sound.effects import *`` θα εισαγάγει τα τρία " "submodules με το όνομα του πακέτου :mod:`!sound.effects`." #: tutorial/modules.rst:518 msgid "" "Be aware that submodules might become shadowed by locally defined names. For " "example, if you added a ``reverse`` function to the :file:`sound/effects/" "__init__.py` file, the ``from sound.effects import *`` would only import the " "two submodules ``echo`` and ``surround``, but *not* the ``reverse`` " "submodule, because it is shadowed by the locally defined ``reverse`` " "function::" msgstr "" "Λάβετε υπόψη ότι τα submodules ενδέχεται να σκιάζονται από τοπικά " "καθορισμένα ονόματα. Για παράδειγμα, εάν προσθέσατε μια ``reverse`` " "συνάρτηση στο αρχείο :file:`sound/effects/__init__.py`, το ``from sound." "effects import *`` θα εισαγάγει μόνο τα δύο submodules ``echo`` και " "``surround``, αλλά *όχι* το submodule ``reverse``, επειδή επισκιάζεται από " "την τοπικά καθορισμένη συνάρτηση ``reverse``::" #: tutorial/modules.rst:525 msgid "" "__all__ = [\n" " \"echo\", # refers to the 'echo.py' file\n" " \"surround\", # refers to the 'surround.py' file\n" " \"reverse\", # !!! refers to the 'reverse' function now !!!\n" "]\n" "\n" "def reverse(msg: str): # <-- this name shadows the 'reverse.py' submodule\n" " return msg[::-1] # in the case of a 'from sound.effects import *'" msgstr "" "__all__ = [\n" " \"echo\", # refers to the 'echo.py' file\n" " \"surround\", # refers to the 'surround.py' file\n" " \"reverse\", # !!! refers to the 'reverse' function now !!!\n" "]\n" "\n" "def reverse(msg: str): # <-- this name shadows the 'reverse.py' submodule\n" " return msg[::-1] # in the case of a 'from sound.effects import *'" #: tutorial/modules.rst:534 msgid "" "If ``__all__`` is not defined, the statement ``from sound.effects import *`` " "does *not* import all submodules from the package :mod:`!sound.effects` into " "the current namespace; it only ensures that the package :mod:`!sound." "effects` has been imported (possibly running any initialization code in :" "file:`__init__.py`) and then imports whatever names are defined in the " "package. This includes any names defined (and submodules explicitly loaded) " "by :file:`__init__.py`. It also includes any submodules of the package that " "were explicitly loaded by previous :keyword:`import` statements. Consider " "this code::" msgstr "" "Εάν δεν έχει οριστεί το ``__all__``, η δήλωση ``from sound.effects import " "*`` *δεν* εισάγει όλα τα submodules από το πακέτο :mod:`!sound.effects` στο " "τρέχων namespace∙ διασφαλίζει μόνο ότι το πακέτο :mod:`!sound.effects` έχει " "εισαχθεί (ενδεχομένως να εκτελείται οποιοσδήποτε κωδικός προετοιμασίας στο " "στο :file:`__init__.py`) και στη συνέχεια εισάγει οποιαδήποτε ονόματα " "ορίζονται στο πακέτο. Αυτό περιλαμβάνει τυχόν ονόματα που ορίζονται (και " "submodules που έχουν φορτωθεί ρητά) από το :file:`__init__.py`. " "Περιλαμβάνει επίσης τυχόν submodules του πακέτου που φορτώθηκαν ρητά από " "προηγούμενες δηλώσεις :keyword:`import`. Σκεφτείτε αυτόν τον κώδικα::" #: tutorial/modules.rst:543 msgid "" "import sound.effects.echo\n" "import sound.effects.surround\n" "from sound.effects import *" msgstr "" "import sound.effects.echo\n" "import sound.effects.surround\n" "from sound.effects import *" #: tutorial/modules.rst:547 msgid "" "In this example, the :mod:`!echo` and :mod:`!surround` modules are imported " "in the current namespace because they are defined in the :mod:`!sound." "effects` package when the ``from...import`` statement is executed. (This " "also works when ``__all__`` is defined.)" msgstr "" "Σε αυτό το παράδειγμα, τα modules :mod:`!echo` και :mod:`!surround` " "εισάγονται στο τρέχον namespace επειδή ορίζονται στο πακέτο :mod:`!sound." "effects` όταν η δήλωση ``from...import`` εκτελείται. (Αυτό λειτουργεί " "επίσης όταν ορίζεται το ``__all__``)." #: tutorial/modules.rst:552 msgid "" "Although certain modules are designed to export only names that follow " "certain patterns when you use ``import *``, it is still considered bad " "practice in production code." msgstr "" "Αν και ορισμένα modules έχουν σχεδιαστεί για να εξάγουν μόνο ονόματα που " "ακολουθούν ορισμένα μοτίβα όταν χρησιμοποιείτε το ``import *``, εξακολουθεί " "να θεωρείται κακή πρακτική στον κώδικα παραγωγής." #: tutorial/modules.rst:556 msgid "" "Remember, there is nothing wrong with using ``from package import " "specific_submodule``! In fact, this is the recommended notation unless the " "importing module needs to use submodules with the same name from different " "packages." msgstr "" "Θυμηθείτε, δεν υπάρχει τίποτα κακό με τη χρήση του ``from package import " "specific_submodule``! Στην πραγματικότητα, αυτή είναι η προτεινόμενη " "σημείωση, εκτός εάν το module εισαγωγής χρειάζεται να χρησιμοποιήσει " "submodules με το ίδιο όνομα από διαφορετικά πακέτα." #: tutorial/modules.rst:565 msgid "Intra-package References" msgstr "Intra-package αναφορές" #: tutorial/modules.rst:567 msgid "" "When packages are structured into subpackages (as with the :mod:`!sound` " "package in the example), you can use absolute imports to refer to submodules " "of siblings packages. For example, if the module :mod:`!sound.filters." "vocoder` needs to use the :mod:`!echo` module in the :mod:`!sound.effects` " "package, it can use ``from sound.effects import echo``." msgstr "" "Όταν τα πακέτα είναι δομημένα σε υποπακέτα (όπως με το πακέτο :mod:`!sound` " "στο παράδειγμα), μπορείτε να χρησιμοποιήσετε απόλυτες εισαγωγές για να " "αναφερθείτε σε submodules αδερφών πακέτων. Για παράδειγμα, εάν το module :" "mod:`!sound.filters.vocoder` πρέπει να χρησιμοποιήσει το module :mod:`!echo` " "στο πακέτο :mod:`!sound.effects` , μπορεί να χρησιμοποιήσει το ``from sound." "effects import echo``." #: tutorial/modules.rst:573 msgid "" "You can also write relative imports, with the ``from module import name`` " "form of import statement. These imports use leading dots to indicate the " "current and parent packages involved in the relative import. From the :mod:" "`!surround` module for example, you might use::" msgstr "" "Μπορείτε επίσης να γράψετε σχετικές εισαγωγές, με τη φόρμα ``from module " "import name`` της δήλωσης εισαγωγής. Αυτές οι εισαγωγές χρησιμοποιούν " "leading dots για να υποδείξουν τα τρέχοντα και γονικά πακέτα που εμπλέκονται " "στη σχετική εισαγωγή. Από το :mod:`!surround` module για παράδειγμα, μπορεί " "να χρησιμοποιήσετε::" #: tutorial/modules.rst:578 msgid "" "from . import echo\n" "from .. import formats\n" "from ..filters import equalizer" msgstr "" "from . import echo\n" "from .. import formats\n" "from ..filters import equalizer" #: tutorial/modules.rst:582 msgid "" "Note that relative imports are based on the name of the current module's " "package. Since the main module does not have a package, modules intended for " "use as the main module of a Python application must always use absolute " "imports." msgstr "" "Λάβετε υπόψη ότι οι σχετικές εισαγωγές βασίζονται στο όνομα του τρέχοντος " "module. Επειδή το όνομα του κύριου module δεν έχει πακέτο, τα modules που " "προορίζονται για χρήση ως το κύριο module μιας εφαρμογής Python πρέπει πάντα " "να χρησιμοποιούν απόλυτες εισαγωγές." #: tutorial/modules.rst:588 msgid "Packages in Multiple Directories" msgstr "Πακέτα σε Πολλαπλούς Καταλόγους" #: tutorial/modules.rst:590 msgid "" "Packages support one more special attribute, :attr:`~module.__path__`. This " "is initialized to be a :term:`sequence` of strings containing the name of " "the directory holding the package's :file:`__init__.py` before the code in " "that file is executed. This variable can be modified; doing so affects " "future searches for modules and subpackages contained in the package." msgstr "" "Τα πακέτα υποστηρίζουν ένα ακόμη ειδικό χαρακτηριστικό, :attr:`~module." "__path__`. Αυτό έχει αρχικοποιηθεί ως μια :term:`sequence` από " "συμβολοσειρές που περιέχει το όνομα του καταλόγου που το :file:`__init__.py` " "του πακέτου πριν από την εκτέλεση του κώδικα σε αυτό το αρχείο. Αυτή η " "μεταβλητή μπορεί να τροποποιηθεί, αυτό επηρεάζει τις μελλοντικές αναζητήσεις " "για modules και υποπακέτα που περιέχονται στο πακέτο." #: tutorial/modules.rst:597 msgid "" "While this feature is not often needed, it can be used to extend the set of " "modules found in a package." msgstr "" "Ενώ αυτή η δυνατότητα δεν χρειάζεται συχνά, μπορεί να χρησιμοποιηθεί για την " "επέκταση του συνόλου των modules που βρίσκονται σε ένα πακέτο." #: tutorial/modules.rst:602 msgid "Footnotes" msgstr "Υποσημειώσεις" #: tutorial/modules.rst:603 msgid "" "In fact function definitions are also 'statements' that are 'executed'; the " "execution of a module-level function definition adds the function name to " "the module's global namespace." msgstr "" "Στην πραγματικότητα, οι ορισμοί συναρτήσεων είναι επίσης 'statements' που " "'εκτελούνται'∙ η εκτέλεση ενός ορισμού συνάρτησης σε επίπεδο module " "προσθέτει το όνομα της συνάρτησης στον καθολικό namespace του module." #: tutorial/modules.rst:269 tutorial/modules.rst:350 msgid "module" msgstr "module" #: tutorial/modules.rst:186 msgid "search" msgstr "αναζήτηση" #: tutorial/modules.rst:186 msgid "path" msgstr "path" #: tutorial/modules.rst:269 msgid "sys" msgstr "sys" #: tutorial/modules.rst:350 msgid "builtins" msgstr "builtins" #: tutorial/modules.rst:495 msgid "__all__" msgstr "__all__"
X Tutup