Γλωσσάρι
********

">>>"
   Το προεπιλεγμένο Python prompt του διαδραστικού shell. Συχνά
   εμφανίζεται για παραδείγματα κώδικα που μπορούν να εκτελεστούν
   διαδραστικά στον interpreter.

"..."
   Μπορεί να αναφέρεται σε:

   * Το προεπιλεγμένο Python prompt του διαδραστικού shell κατά την
     εισαγωγή του κώδικα για ένα μπλοκ κώδικα με εσοχή, όταν βρίσκεται
     μέσα σε ένα ζεύγος ταιριασμένων αριστερών και δεξιών delimiters
     (παρενθέσεις, αγκύλες, άγκιστρα ή τριπλά εισαγωγικά), ή μετά τον
     καθορισμό ενός decorator.

   * Η ενσωματωμένη σταθερά "Ellipsis".

2to3
   Ένα εργαλείο που προσπαθεί να μετατρέψει τον κώδικα Python 2.x σε
   κώδικα Python 3.x διαχειρίζοντας τις περισσότερες ασυμβατότητες που
   μπορούν να εντοπιστούν αναλύοντας την πηγή και διασχίζοντας το
   δέντρο ανάλυσης.

   2to3 είναι διαθέσιμο στην στάνταρ βιβλιοθήκη ως "lib2to3",
   παρέχεται ένα σημείο εισόδου ως "Tools/scripts/2to3". Βλ. 2to3 -
   Automated Python 2 to 3 code translation.

αφηρημένη βασική κλάση
   Οι αφηρημένες βασικές κλάσεις συμπληρώνουν το *duck-typing*
   παρέχοντας έναν τρόπο ορισμού interfaces όταν άλλες τεχνικές όπως η
   "hasattr()" θα ήταν αδέξιες ή ανεπαίσθητα λανθασμένες (για
   παράδειγμα με magic methods). Τα ABC (abstract base class) εισάγουν
   εικονικές υποκλάσεις, οι οποίες είναι κλάσεις που δεν
   κληρονομούνται από μια κλάση, αλλά εξακολουθούν να αναγνωρίζονται
   από το "isinstance()" και από το "issubclass()"' βλ. την τεκμηρίωση
   του module "abc". Η Python διαθέτει πολλά ενσωματωμένα ABC για
   δομές δεδομένων (στο module "collections.abc"), αριθμούς (στο
   module "numbers"), ροές (στο module μονάδα "io"), εισαγωγή finders
   και loaders (στο module "importlib.abc"). Μπορείτε να δημιουργήσετε
   τα δικά σας ABC με το module "abc".

annotation
   Μια ετικέτα που σχετίζεται με μια μεταβλητή, ένα χαρακτηριστικό
   κλάσης ή μια παράμετρος συνάρτησης ή τιμή που επιστρέφεται, που
   χρησιμοποιείται κατά σύμβαση ως *type hint*.

   Δεν είναι δυνατή η πρόσβαση στα annotations των τοπικών μεταβλητών
   κατά το χρόνο εκτέλεσης, αλλά τα annotations των global μεταβλητών,
   των χαρακτηριστικών κλάσης και των συναρτήσεων αποθηκεύονται στο
   ειδικό χαρακτηριστικό "__annotations__" των modules, των κλάσεων
   και των συναρτήσεων, αντίστοιχα.

   See *variable annotation*, *function annotation*, **PEP 484** and
   **PEP 526**, which describe this functionality.

όρισμα
   Μια τιμή μεταβιβάζεται σε μία *function* (ή *method*) κατά την
   κλήση της συνάρτησης.  Υπάρχουν δύο είδη ορισμάτων:

   * *keyword argument*: ένα όρισμα πριν από ένα αναγνωριστικό (π.χ.
     "name=") σε μια κλήση συνάρτησης ή περνώντας το ως τιμή σε ένα
     λεξικό πριν από "**". Για παράδειγμα, το "3" και το "5" αποτελούν
     ορίσματα λέξεων-κλειδιών στις ακόλουθες κλήσεις προς "complex()":

        complex(real=3, imag=5)
        complex(**{'real': 3, 'imag': 5})

   * *positional argument*: ένα όρισμα που δεν είναι όρισμα keyword.
     Τα ορίσματα θέσης μπορούν να εμφανίζονται στην αρχής μιας λίστας
     ορισμάτων ή/και να μεταβιβάζονται ως στοιχεία ενός *iterable*
     πριν από "*". Για παράδειγμα, το "3" και το "5" αποτελούν
     ορίσματα θέσης στις παρακάτω κλήσεις:

        complex(3, 5)
        complex(*(3, 5))

   Τα ορίσματα εκχωρούνται στις ονομασμένες τοπικές μεταβλητές στο
   σώμα μια συνάρτησης. Βλ. την ενότητα Calls για τους κανόνες που
   διέπουν αυτήν την εκχώρηση. Συντακτικά, οποιαδήποτε έκφραση μπορεί
   να χρησιμοποιηθεί για να αναπαραστήσει ένα όρισμα' η αξιολογούμενη
   τιμή εκχωρείται σε μια τοπική μεταβλητή.

   Βλ. επίσης την εγγραφή του γλωσσαρίου για το *parameter*, την FAQ
   ερώτηση στο η διαφορά μεταξύ ορισμάτων και παραμέτρων, και **PEP
   362**.

ασύγχρονος διαχειριστής context
   An object which controls the environment seen in an "async with"
   statement by defining "__aenter__()" and "__aexit__()" methods.
   Introduced by **PEP 492**.

ασύγχρονος generator
   Μια συνάρτηση που επιστρέφει έναν *asynchronous generator
   iterator*. Μοιάζει με μια συνάρτηση coroutine που ορίζεται με
   "async def" εκτός από ότι περιέχει εκφράσεις "yield" για την
   παραγωγή μιας σειράς τιμών που μπορούν να χρησιμοποιηθούν σε έναν
   "async for" βρόχο.

   Συνήθως αναφέρεται σε μια συνάρτηση ασύγχρονου generator, αλλά
   μπορεί να αναφέρεται σε έναν *ασύγχρονο generator iterator* σε
   ορισμένα contexts. Σε περιπτώσεις όπου το επιδιωκόμενο νόημα δεν
   είναι σαφές, με την χρήση των πλήρων όρων αποφεύγεται η ασάφεια.

   Μια συνάρτηση ασύγχρονου generator μπορεί να περιέχει εκφράσεις
   "await" , καθώς και δηλώσεις "async for", και "async with".

ασύγχρονος generator iterator
   Ένα αντικείμενο που δημιουργήθηκε από μια συνάρτηση *asynchronous
   generator*.

   This is an *asynchronous iterator* which when called using the
   "__anext__()" method returns an awaitable object which will execute
   the body of the asynchronous generator function until the next
   "yield" expression.

   Each "yield" temporarily suspends processing, remembering the
   location execution state (including local variables and pending
   try-statements).  When the *asynchronous generator iterator*
   effectively resumes with another awaitable returned by
   "__anext__()", it picks up where it left off.  See **PEP 492** and
   **PEP 525**.

ασύγχρονος iterable
   An object, that can be used in an "async for" statement. Must
   return an *asynchronous iterator* from its "__aiter__()" method.
   Introduced by **PEP 492**.

ασύγχρονος iterator
   An object that implements the "__aiter__()" and "__anext__()"
   methods.  "__anext__" must return an *awaitable* object. "async
   for" resolves the awaitables returned by an asynchronous iterator's
   "__anext__()" method until it raises a "StopAsyncIteration"
   exception.  Introduced by **PEP 492**.

χαρακτηριστικό
   A value associated with an object which is referenced by name using
   dotted expressions.  For example, if an object *o* has an attribute
   *a* it would be referenced as *o.a*.

awaitable
   An object that can be used in an "await" expression.  Can be a
   *coroutine* or an object with an "__await__()" method. See also
   **PEP 492**.

BDFL
   Ακρωνύμιο του *Benevolent Dictator For Life*, καλοκάγαθος
   δικτάτορας της ζωής, δηλαδή Guido van Rossum, ο δημιουργός της
   Python.

δυαδικό αρχείο
   A *file object* able to read and write *bytes-like objects*.
   Examples of binary files are files opened in binary mode ("'rb'",
   "'wb'" or "'rb+'"), "sys.stdin.buffer", "sys.stdout.buffer", and
   instances of "io.BytesIO" and "gzip.GzipFile".

   Βλ. επίσης *text file* για ένα αντικείμενο τύπου αρχείο ικανό να
   διαβάσει και να γράψει "str" αντικείμενα.

bytes-like αντικείμενα
   Ένα αντικείμενο που υποστηρίζει το Buffer Protocol και μπορεί να
   εξάγει ένα C-*contiguous* buffer. Αυτό περιλαμβάνει όλα τα
   αντικείμενα "bytes", "bytearray", και "array.array", καθώς και
   πολλά κοινά "memoryview" αντικείμενα. Τα δυαδικού τύπου (bytes-
   like) αντικείμενα μπορούν να χρησιμοποιηθούν για διάφορες
   λειτουργίες που διαχειρίζονται δυαδικά δεδομένα' αυτά περιλαμβάνουν
   συμπίεση αποθήκευση σε δυαδικό αρχείο και αποστολή μέσω socket.

   Ορισμένες λειτουργίες χρειάζονται τα δυαδικά δεδομένα να είναι
   μεταβλητά.  Η τεκμηρίωση συχνά αναφέρεται σε αυτά ως "δυαδικά
   αντικείμενα ανάγνωσης-εγγραφής" (read-write bytes-like objects).
   Παραδείγματα μεταβλητών αντικειμένων προσωρινής αποθήκευσης
   περιέχουν "bytearray" και ένα "memoryview" ενός "bytearray". Άλλες
   λειτουργίες απαιτούν την αποθήκευσης των δυαδικών δεδομένα σε
   αμετάβλητα αντικείμενα ("δυαδικά αντικείμενα μόνο ανάγνωσης"'
   (read-only bytes-like objects) παραδείγματα αυτών περιέχουν "bytes"
   και ένα "memoryview" ενός "bytes" αντικειμένου.

bytecode
   Ο πηγαίος κώδικα της Python μεταγλωττίζεται σε *bytecode*, η
   εσωτερική αναπαράσταση ενός προγράμματος Python στον διερμηνέα
   CPython. Το *bytecode* αποθηκεύεται επίσης προσωρινά ως ".pyc"
   αρχεία ώστε η εκτέλεση του ίδιου αρχείου να είναι γρηγορότερη την
   δεύτερη φορά εκτέλεσης (μπορεί να αποφευχθεί η εκ νέου μεταγλώττιση
   από τον πηγαίο κώδικα σε *bytcode*). Αυτή η "ενδιάμεση γλώσσα"
   λέγεται ότι τρέχει σε μια *virtual machine* που εκτελεί τον κώδικα
   μηχανής που αντιστοιχεί σε κάθε *bytecode*. Λάβετε υπόψη ότι τα
   *bytecode* δεν αναμένεται να λειτουργούν μεταξύ διαφορετικών
   εικονικών μηχανών Python, ούτε να είναι σταθερά μεταξύ των εκδόσεων
   της Python.

   Μια λίστα από οδηγίες σχετικά με τα bytecode μπορεί να βρεθεί στην
   τεκμηρίωση για το module dis.

callback
   Μια subroutine συνάρτηση η οποία μεταβιβάζεται ως όρισμα που θα
   εκτελεστεί κάποια στιγμή στο μέλλον.

κλάση
   Ένα πρότυπο για τη δημιουργία αντικειμένων που ορίζονται από το
   χρήστη. Οι ορισμοί κλάσεων συνήθως περιέχουν ορισμούς μεθόδων που
   λειτουργούν σε στιγμιότυπα της κλάσης.

μεταβλητή κλάσης
   Μια μεταβλητή που ορίζεται σε μια κλάση και προορίζεται να
   τροποποιηθεί μόνο σε επίπεδο κλάσης (δηλ. όχι σε ένα στιγμιότυπο
   μιας κλάσης).

coercion
   The implicit conversion of an instance of one type to another
   during an operation which involves two arguments of the same type.
   For example, "int(3.15)" converts the floating point number to the
   integer "3", but in "3+4.5", each argument is of a different type
   (one int, one float), and both must be converted to the same type
   before they can be added or it will raise a "TypeError".  Without
   coercion, all arguments of even compatible types would have to be
   normalized to the same value by the programmer, e.g.,
   "float(3)+4.5" rather than just "3+4.5".

μιγαδικός αριθμός
   Μια επέκταση του γνωστού συστήματος πραγματικών αριθμών στο οποίο
   όλοι οι αριθμοί εκφράζονται ως άθροισμα ενός πραγματικού μέρους και
   ενός φανταστικού μέρους. Οι φανταστικοί αριθμοί είναι πραγματικά
   πολλαπλάσια της φανταστικής μονάδα (η τετραγωνική ρίζα του "-1"),
   που συχνά γράφονται "i" στα μαθηματικά ή "j" στη μηχανική. Η Python
   έχει ενσωματωμένη υποστήριξη για μιγαδικούς αριθμούς, οι οποίοι
   γράφονται με αυτόν τον τελευταίο συμβολισμό' το φανταστικό μέρος
   γράφεται με το επίθημα "j", π.χ., "3+1j". Για να αποκτήσετε
   πρόσβαση σε σύνθετα ισοδύναμα το module "math", χρησιμοποιήστε το
   "cmath". Η χρήση μιγαδικών αριθμών είναι ένα αρκετά προηγμένο
   μαθηματικό χαρακτηριστικό. εάν δεν γνωρίζετε την ανάγκη τους, είναι
   σχεδόν σίγουρο ότι μπορείτε να τα αγνοήσετε με ασφάλεια.

διαχειριστής context
   An object which controls the environment seen in a "with" statement
   by defining "__enter__()" and "__exit__()" methods. See **PEP
   343**.

context μεταβλητή
   Μια μεταβλητή που μπορεί να έχει πολλές διαφορετικές τιμές ανάλογα
   με το context. Αυτό είναι κοινό στο Thread-Local Storage όπου κάθε
   εκτέλεση του νήματος μπορεί να έχει διαφορετική τιμή για μια
   μεταβλητή. Παρόλα αυτά, με τις context μεταβλητές, μπορεί να
   υπάρχουν πολλά περιβάλλοντα σε ένα νήμα εκτέλεσης και η κύρια χρήση
   για τις context μεταβλητές είναι η παρακολούθηση των μεταβλητών σε
   ταυτόχρονες διεργασίες. Βλ. "contextvars".

contiguous
   Ένα buffer θεωρείται contiguous ακριβώς εάν είναι είτε
   *C-contiguous* είτε *Fortran contriguous*. Το buffer μηδενικών
   διαστάσεων είναι C και Fortran contiguous. Σε μονοδιάστατους
   πίνακες, τα στοιχεία πρέπει να τοποθετούνται στη μνήμη το ένα δίπλα
   στο άλλο, με σειρά αύξησης των δεικτών ξεκινώντας από το μηδέν. Σε
   πολυδιάστατους C-contiguous πίνακες, ο τελευταίος δείκτης
   μεταβάλλεται ταχύτερα όταν επισκέπτονται τα στοιχεία σε σειρά
   διεύθυνσης μνήμης. Ωστόσο, σε Fortran contiguous πίνακες, ο πρώτος
   δείκτης μεταβάλλεται πιο γρήγορα.

coroutine
   Οι coroutines είναι μια πιο γενικευμένη μορφή subroutines. Οι
   subroutines εισάγονται σε ένα σημείο και εξάγονται σε άλλο σημείο.
   Οι coroutines μπορεί να εισαχθούν, να εξαχθούν και να συνεχιστούν
   σε πολλά διαφορετικά σημεία. Μπορούν να υλοποιήσουν με την δήλωση
   "async def". Βλ. επίσης **PEP 492**.

coroutine συνάρτηση
   Μια συνάρτηση που επιστρέφει ένα *coroutine* αντικείμενο.  Μια
   συνάρτηση coroutine μπορεί να ορίζεται από τη δήλωση "async def",
   και μπορεί να περιέχει "await", "async for", και "async with"
   λέξεις κλειδιά. Αυτές εισήχθησαν από το **PEP 492**.

CPython
   Η κανονική υλοποίηση της γλώσσας προγραμματισμού Python, όπως
   διανέμεται στο python.org. Ο όρος "CPython" χρησιμοποιείται όταν
   είναι απαραίτητο για την διάκριση αυτής της υλοποίησης από άλλες
   όπως η *Jython* ή η *IronPython*.

decorator
   Μια συνάρτηση που επιστρέφει μια άλλη συνάρτηση, συνήθως
   εφαρμόζεται ως μετασχηματισμός συνάρτησης χρησιμοποιώντας την
   "@wrapper" σύνταξη. Συνηθισμένα παραδείγματα για τους decorators
   είναι "classmethod()" και "staticmethod()".

   Η σύνταξη του decorator είναι απλώς καλλωπιστική, οι ακόλουθοι δύο
   ορισμοί συναρτήσεων είναι σημασιολογικά ισοδύναμοι:

      def f(arg):
          ...
      f = staticmethod(f)

      @staticmethod
      def f(arg):
          ...

   Η ίδια έννοια υπάρχει για τις κλάσεις, αλλά χρησιμοποιείται
   λιγότερο συχνά εκεί. Βλ. την τεκμηρίωση για function definitions
   και class definitions για περισσότερα σχετικά με τους decorators.

descriptor
   Any object which defines the methods "__get__()", "__set__()", or
   "__delete__()".  When a class attribute is a descriptor, its
   special binding behavior is triggered upon attribute lookup.
   Normally, using *a.b* to get, set or delete an attribute looks up
   the object named *b* in the class dictionary for *a*, but if *b* is
   a descriptor, the respective descriptor method gets called.
   Understanding descriptors is a key to a deep understanding of
   Python because they are the basis for many features including
   functions, methods, properties, class methods, static methods, and
   reference to super classes.

   Για περισσότερες πληροφορίες αναφορικά με τις μεθόδους των
   descriptors, βλ. see Implementing Descriptors ή το Πρακτικός οδηγός
   για τη χρήση του Descriptor.

λεξικό
   An associative array, where arbitrary keys are mapped to values.
   The keys can be any object with "__hash__()" and "__eq__()"
   methods. Called a hash in Perl.

κατανόηση λεξικού
   Ένα συμπαγής τρόπος για να επεξεργαστείτε όλα ή μέρος των στοιχείων
   σε ένα επαναληπτικό και να επιστραφεί ένα με λεξικό με τα
   αποτελέσματα. "results = {n: n ** 2 for n in range(10)}" δημιουργεί
   ένα λεξικό που περιέχει το κλειδί "n" που αντιστοιχίζεται με την
   τιμή "n ** 2". Βλ. Displays for lists, sets and dictionaries.

όψη λεξικού
   Τα αντικείμενα που επιστρέφονται από "dict.keys()",
   "dict.values()", και "dict.items()" καλούνται όψεις λεξικού. Αυτές
   παρέχουν μια δυναμική όψη των των εγγραφών του λεξικού, που
   σημαίνει ότι όταν το λεξικό μεταβάλλεται, η όψη αντικατοπτρίζει
   αυτές τις αλλαγές. Για να αναγκάσετε την όψη λεξικού να γίνει μια
   πλήρης λίστα χρησιμοποιήστε το "list(dictview)".  Βλ. Αντικείμενα
   όψης λεξικού.

docstring
   A string literal which appears as the first expression in a class,
   function or module.  While ignored when the suite is executed, it
   is recognized by the compiler and put into the "__doc__" attribute
   of the enclosing class, function or module.  Since it is available
   via introspection, it is the canonical place for documentation of
   the object.

duck-typing
   Ένα στυλ προγραμματισμού που δεν εξετάζει τον τύπο ενός
   αντικειμένου για να προσδιορίσει αν έχει τη σωστή διεπαφή'
   αντίθετα, η μέθοδος ή το χαρακτηριστικό καλείται απλώς ή
   χρησιμοποιείται ("If it looks like a duck and quacks like a duck,
   it must be a duck.") Δίνοντας έμφαση στις διεπαφές και όχι σε
   συγκεκριμένους τύπους, ο καλά σχεδιασμένος κώδικας βελτιώνει την
   ευελιξία του επιτρέποντας την πολυμορφική υποκατάσταση. Ο τύπος
   duck-typing αποφεύγει δοκιμές χρησιμοποιώντας "type()" ή
   "isinstance()". (Σημείωση, ωστόσο, ότι ο τύπος πάπιας *duck-typing*
   μπορεί να συμπληρωθεί με *abstract base classes*.) Αντί αυτού,
   συνήθως χρησιμοποιεί δοκιμές "hasattr()" ή προγραμματισμό *EAFP*.

EAFP
   Πιο εύκολο να ζητήσεις συγχώρεση παρά άδεια.  Αυτό το κοινό στυλ
   προγραμματισμού σε Python προϋποθέτει την ύπαρξη έγκυρων κλειδιών ή
   χαρακτηριστικών και συλλαμβάνει εξαιρέσεις εάν η υπόθεση αποδεχθεί
   εσφαλμένη. Αυτό το καθαρό και γρήγορο στυλ χαρακτηρίζεται από την
   παρουσία πολλών δηλώσεων "try" και "except". Η τεχνική έρχεται σε
   αντίθεση με το στυλ που είναι *LBYL* κοινό σε πολλές άλλες γλώσσες,
   όπως η C.

έκφραση
   Ένα κομμάτι σύνταξης που μπορεί να αξιολογηθεί σε κάποια τιμή. Με
   άλλα λόγια, μια έκφραση είναι μια συσσώρευση στοιχείων έκφρασης
   όπως κυριολεξία, ονόματα, πρόσβαση χαρακτηριστικών, τελεστές ή
   κλήσεις συναρτήσεων που όλες επιστρέφουν μια τιμή. Σε αντίθεση με
   πολλές άλλες γλώσσες, δεν είναι όλες οι γλωσσικές δομές εκφράσεις.
   Υπάρχουνε επίσης *statement*s που δεν μπορούν να χρησιμοποιηθούν ως
   εκφράσεις, όπως το "while".  Οι αναθέσεις τιμών είναι επίσης
   δηλώσεις όχι εκφράσεις.

module επέκτασης
   Ένα module γραμμένο σε C ή C++, που χρησιμοποιείται από το C API
   της Python για να αλληλεπιδράσουν με τον πυρήνα και με τον κώδικα
   του χρήστη.

f-string
   Οι κυριολεκτικές συμβολοσειρές χρησιμοποιούν με πρόθεμα "'f'" ή
   "'F'" ονομάζονται συνήθως "f-strings" που είναι συντομογραφία του
   formatted string literals. Βλ. επίσης **PEP 498**.

αντικείμενο αρχείου
   An object exposing a file-oriented API (with methods such as
   "read()" or "write()") to an underlying resource.  Depending on the
   way it was created, a file object can mediate access to a real on-
   disk file or to another type of storage or communication device
   (for example standard input/output, in-memory buffers, sockets,
   pipes, etc.).  File objects are also called *file-like objects* or
   *streams*.

   Στην πραγματικότητα υπάρχουν τρεις κατηγορίες αντικειμένων αρχείου
   raw *δυαδικά αρχεία*, buffered *δυαδικά αρχεία* και *αρχεία
   κειμένου*. Οι διεπαφές τους ορίζονται στην ενότητα "io". Ο
   κανονικός τρόπος για να δημιουργήσετε ένα αντικείμενο αρχείου είναι
   χρησιμοποιώντας την συνάρτηση "open()".

αντικείμενο που μοιάζει με αρχείο
   Ένα συνώνυμο με το *file object*.

finder
   Ένα αντικείμενο που προσπαθεί να βρει το *loader* για ένα module
   που εισήχθη.

   Since Python 3.3, there are two types of finder: *meta path
   finders* for use with "sys.meta_path", and *path entry finders* for
   use with "sys.path_hooks".

   See **PEP 302**, **PEP 420** and **PEP 451** for much more detail.

ακέραια διαίρεση
   Η μαθηματική διαίρεση που στρογγυλοποιεί προς τα κάτω στον
   κοντινότερο ακέραιο. Ο τελεστής ακέραιας διαίρεσης είναι "//". Για
   παράδειγμα, η έκφραση "11 // 4" αξιολογείται σε "2" σε αντίθεση με
   την τιμή "2.75" που επιστρέφεται από την διαίρεση με υποδιαστολή.
   Σημείωση ότι "(-11) // 4" κάνει "-3" επειδή αυτή είναι η
   στρογγυλοποίηση *προς τα κάτω* του "-2.75". Βλ. **PEP 238**.

συνάρτηση
   Μια σειρά από δηλώσεις που επιστρέφουν κάποια τιμή σε αυτόν που την
   κάλεσε. Σε αυτές μπορούν να περαστούν κανένα ή περισσότερα
   *ορίσματα* που μπορεί να χρησιμοποιηθεί για την εκτέλεση. Βλ.
   επίσης τις ενότητες *parameter*, *method*, και the Function
   definitions.

συνάρτηση annotation
   Ένας *annotation* μιας παραμέτρου συνάρτησης ή μιας τιμής
   επιστροφής.

   Οι συναρτήσεις annotations συχνά χρησιμοποιούνται για *υποδείξεις
   τύπου*: για παράδειγμα, αυτή η συνάρτηση αναμένεται να πάρει δύο
   ορίσματα "int" και επίσης αναμένεται να έχει μία επιστρεφόμενη τιμή
   "int":

      def sum_two_numbers(a: int, b: int) -> int:
         return a + b

   Η σύνταξη συνάρτησης annotation αναλύεται στην ενότητα Function
   definitions.

   See *variable annotation* and **PEP 484**, which describe this
   functionality.

__future__
   Ένα future statement, "from __future__ import <feature>", καθοδηγεί
   τον μεταγλωττιστή να μεταγλωττίσει το τρέχον module χρησιμοποιώντας
   σύνταξη ή σημασιολογία που θα γίνει η τυπική σε μελλοντική έκδοση
   της Python. Το module "__future__" τεκμηριώνει τις πιθανές τιμές
   του *feature*. Με την εισαγωγή αυτής της λειτουργικής μονάδας και
   την αξιολόγηση των μεταβλητών της, μπορείτε να δείτε πότε μια νέα
   δυνατότητα προστέθηκε για πρώτη φορά στην γλώσσα και πότε θα γίνει
   (ή έγινε) η προεπιλογή:

      >>> import __future__
      >>> __future__.division
      _Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)

συλλογή απορριμάτων
   Η διαδικασία απελευθέρωσης της μνήμης όταν δεν χρησιμοποιείται
   άλλο.  Η Python εκτελεί συλλογή απορριμάτων μέσω καταμέτρησης
   αναφορών και ενός κυκλικού συλλέκτη σκουπιδιών που είναι σε θέση να
   ανιχνεύει και να σπάει τους κύκλους αναφοράς. Ο συλλέκτης
   απορριμάτων μπορεί να ελεγχθεί χρησιμοποιώντας το module "gc".

generator
   Μια συνάρτηση που επιστρέφει ένα *generator iterator*.  Μοιάζει με
   μια κανονική συνάρτηση εκτός από το ότι περιέχει εκφράσεις "yield"
   για την παραγωγή μιας σειράς τιμών που μπορούν να χρησιμοποιηθούν
   σε έναν βρόχο *for* ή που μπορούν να ανακτηθούν μία τη φορά με την
   συνάρτηση "next()" function.

   Συνήθως αναφέρεται σε μια συνάρτηση generator, αλλά μπορεί να
   αναφέρεται σε έναν  *generator iterator* σε μερικά contexts. Σε
   περιπτώσεις όπου το επιδιωκόμενο νόημα δεν είναι σαφές, η χρήση των
   πλήρων όρων αποφεύγει την ασάφεια.

generator iterator
   Ένα αντικείμενο που δημιουργείται από μια συνάρτηση *generator*.

   Each "yield" temporarily suspends processing, remembering the
   location execution state (including local variables and pending
   try-statements).  When the *generator iterator* resumes, it picks
   up where it left off (in contrast to functions which start fresh on
   every invocation).

generator έκφραση
   Μια έκφραση που επιστρέφει έναν iterator.  Μοιάζει με κανονική
   έκφραση που ακολουθείται από μια πρόταση "for" που ορίζει μια
   μεταβλητή βρόχου, ένα εύρος και μια προαιρετική πρόταση "if". Η
   συνδυασμένη έκφραση δημιουργεί τιμές για μια συνάρτηση εγκλεισμού:

      >>> sum(i*i for i in range(10))         # sum of squares 0, 1, 4, ... 81
      285

γενική συνάρτηση
   Μια συνάρτηση που αποτελείται από πολλαπλές συναρτήσεις που
   υλοποιούν την ίδια λειτουργία για διαφορετικούς τύπους. Ποια
   υλοποίηση πρέπει να χρησιμοποιηθεί κατά τη διάρκεια μια κλήσης
   καθορίζεται από τον αλγόριθμο αποστολής.

   Βλ. επίσης την καταχώρηση του *single dispatch*, τον decorator
   "functools.singledispatch()" και **PEP 443**.

γενικός τύπος
   Ένας *type* που μπορεί να παραμετροποιηθεί' συνήθως μια container
   class, όπως "list" ή "dict". Χρησιμοποιείται για *type hints* και
   *annotations*.

   Για περισσότερες λεπτομέρειες, βλ. generic alias types **PEP 483**,
   **PEP 484**, **PEP 585**, και το module "typing".

GIL
   Βλ. *global interpreter lock*.

global interpreter lock
   Ο μηχανισμός που χρησιμοποιείται από τον διερμηνέα *CPython* για να
   διασφαλίσει ότι μόνο ένα νήμα εκτελεί Python *bytecode* κάθε φορά.
   Αυτό απλοποιεί την υλοποίηση CPython δημιουργώντας το μοντέλο
   αντικειμένου (συμπεριλαμβανομένων κρίσιμων ενσωματωμένων τύπων όπως
   π.χ. "dict") έμμεσα ασφαλές έναντι ταυτόχρονης πρόσβασης. Το
   κλείδωμα ολόκληρου του διερμηνέα διευκολύνει τον διερμηνέα να είναι
   πολλαπλών νημάτων, εις βάρος του μεγάλου μέρους του παραλληλισμού
   που παρέχουν οι μηχανές πολλαπλών επεξεργαστών.

   However, some extension modules, either standard or third-party,
   are designed so as to release the GIL when doing computationally-
   intensive tasks such as compression or hashing.  Also, the GIL is
   always released when doing I/O.

   Προηγούμενες προσπάθειες να δημιουργηθεί ένας διερμηνέας
   "ελεύθερων-νημάτων" (αυτός που κλειδώνει τα κοινόχρηστα δεδομένα με
   πολύ πιο λεπτομερή ευαισθησία) δεν ήταν επιτυχείς επειδή η απόδοση
   υποχώρησε στην κοινή περίπτωση ενός επεξεργαστή. Πιστεύεται ότι η
   υπέρβαση αυτού του προβλήματος απόδοσης θα κάνουν πολύ πιο
   περίπλοκη και επομένως πιο δαπανηρή στην συντήρηση.

hash-based pyc
   Ένα αρχείο κρυφής μνήμης *bytecode* που χρησιμοποιεί τον
   κατακερματισμό και όχι τον χρόνο τροποποίησης του αντίστοιχου
   αρχείου προέλευσης για να προσδιορίσει την εγκυρότητα του. Βλ.
   Cached bytecode invalidation.

hashable
   An object is *hashable* if it has a hash value which never changes
   during its lifetime (it needs a "__hash__()" method), and can be
   compared to other objects (it needs an "__eq__()" method).
   Hashable objects which compare equal must have the same hash value.

   Η ύπαρξη *hashable* κάνει ένα αντικείμενο να μπορεί να
   χρησιμοποιηθεί ως κλειδί λεξικού και ως μέλος ενός συνόλου, επειδή
   αυτές οι δομές δεδομένων χρησιμοποιούν τιμές κατακερματισμού.

   Τα περισσότερα από τα αμετάβλητα ενσωματωμένα αντικείμενα της
   Python μπορούν να κατακερματιστούν' τα μεταβλητά κοντέινερ (όπως οι
   λίστες ή τα λεξικά) δεν είναι' τα αμετάβλητα κοντέινερ (όπως
   πλειάδες και τα frozesets) μπορούν να κατακερματιστούν μόνο εάν τα
   στοιχεία τους είναι κατακερματισμένα. Τα αντικείμενα που είναι
   στιγμιότυπα κλάσεων που ορίζονται από το χρήστη μπορούν να
   κατακερματιστούν από προεπιλογή. Όλα συγκρίνονται άνισα εκτός από
   τον εαυτό τους) και η τιμή κατακερματισμού τους προέρχεται από το
   "id()".

IDLE
   An Integrated Development Environment for Python.  IDLE is a basic
   editor and interpreter environment which ships with the standard
   distribution of Python.

immutable
   Ένα αντικείμενο με σταθερή τιμή.  Τα αμετάβλητα αντικείμενα
   περιλαμβάνουν αριθμούς , συμβολοσειρές και πλειάδες. Ένα τέτοιο
   αντικείμενο δεν μπορεί να αλλάξει. Ένα νέο αντικείμενο πρέπει να
   δημιουργηθεί εάν πρέπει να αποθηκευτεί μια διαφορετική τιμή.
   Παίζουν σημαντικό ρόλο σε μέρη όπου μια σταθερά απαιτείται, για
   παράδειγμα ως κλειδί σε ένα λεξικό.

εισαγόμενο path
   Μια λίστα από τοποθεσίες (ή *καταχωρίσεις διαδρομής*) που μπορούν
   να αναζητηθούν *path based finder* για να εισαχθούν modules. Κατά
   την διαδικασία εισαγωγής, αυτή η λίστα με τοποθεσίες συνήθως
   έρχεται από "sys.path", αλλά για τα υποπακέτα μπορεί επίσης να
   έρθει από το χαρακτηριστικό του πακέτου γονέα "__path__".

εισαγωγή
   Η διαδικασία κατά την οποία ο κώδικας της Python σε ένα module
   είναι διαθέσιμη στον κώδικα Python ενός άλλου module.

εισαγωγέας
   Ένα αντικείμενο μπορεί και να αναζητεί και να φορτώνει ένα module'
   και ένα *finder* και *loader* αντικείμενο.

διαδραστικός
   Η Python έχει έναν διαδραστικό διερμηνέα όπου σημαίνει ότι μπορείς
   να εισάγεις δηλώσεις και εκφράσεις στην εισαγωγή εντολών του
   διερμηνέα, εκτελώντας τες άμεσα και εμφανίζοντας τα αντικείμενα.
   Απλώς εκκινήστε την "python" χωρίς ορίσματα (πιθανώς επιλέγοντας το
   από το κύριο μενού του υπολογιστή σας). Αποτελεί έναν αποδοτικό
   τρόπο για να δοκιμάστε νέες ιδέες ή να εξετάστε λειτουργικές
   μονάδες και πακέτα (θυμηθείτε "help(x)").

interpreted
   Η Python είναι μια interpreted γλώσσα, σε αντίθεση με μια
   μεταγλωττισμένη, αν και η διάκριση μπορεί να είναι και θολή λόγω
   της παρουσία του bytecode μεταγλωττιστή. Αυτό σημαίνει ότι τα
   αρχεία προέλευσης μπορούν να εκτελεστούν απευθείας χωρίς να
   δημιουργηθεί ρητά ένα εκτελέσιμο αρχείο που στην συνέχεια
   εκτελείται. Οι interpreted γλώσσες συνήθως έχουν μικρότερο κύκλο
   ανάπτυξης/ εντοπισμού σφαλμάτων από τις μεταγλωττισμένες, αν και τα
   προγράμματά τους γενικά εκτελούνται πιο αργά. Βλ. επίσης
   *interactive*.

τερματισμός λειτουργίας διερμηνέα
   Όταν ζητείται τερματισμός λειτουργίας, ο διερμηνέας της Python
   εισέρχεται σε μια ειδική φάση όπου απελευθερώνει σταδιακά όλους
   τους διατιθέμενους πόρους, όπως λειτουργικές μονάδες και πολλαπλές
   κρίσιμες εσωτερικές δομές.  Επίσης πραγματοποιεί αρκετές κλήσεις
   στο *συλλέκτης σκουπιδιών*. Αυτό μπορεί να ενεργοποιήσει την
   εκτέλεση κώδικα σε καταστροφείς που ορίζονται από το χρήστη ή σε
   callbacks ασθενούς ανταποκρίσεις. Ο κώδικας που εκτελείται κατά τη
   φάση τερματισμού λειτουργίας μπορεί να συναντήσει διάφορες
   εξαιρέσεις, καθώς οι πόροι στους οποίους βασίζεται ενδέχεται να μην
   λειτουργούν πλέον (συνήθη παραδείγματα είναι οι λειτουργικές
   μονάδες βιβλιοθήκης ή ο μηχανισμός ειδοποιήσεων).

   Ο βασικός λόγος τερματισμού λειτουργίας του διερμηνέα είναι ότι το
   "__main__" module ή ολοκληρώθηκε η εκτέλεση του κώδικα που έτρεχε.

iterable
   An object capable of returning its members one at a time. Examples
   of iterables include all sequence types (such as "list", "str", and
   "tuple") and some non-sequence types like "dict", *file objects*,
   and objects of any classes you define with an "__iter__()" method
   or with a "__getitem__()" method that implements *Sequence*
   semantics.

   Iterables can be used in a "for" loop and in many other places
   where a sequence is needed ("zip()", "map()", ...).  When an
   iterable object is passed as an argument to the built-in function
   "iter()", it returns an iterator for the object.  This iterator is
   good for one pass over the set of values.  When using iterables, it
   is usually not necessary to call "iter()" or deal with iterator
   objects yourself.  The "for" statement does that automatically for
   you, creating a temporary unnamed variable to hold the iterator for
   the duration of the loop.  See also *iterator*, *sequence*, and
   *generator*.

iterator
   An object representing a stream of data.  Repeated calls to the
   iterator's "__next__()" method (or passing it to the built-in
   function "next()") return successive items in the stream.  When no
   more data are available a "StopIteration" exception is raised
   instead.  At this point, the iterator object is exhausted and any
   further calls to its "__next__()" method just raise "StopIteration"
   again.  Iterators are required to have an "__iter__()" method that
   returns the iterator object itself so every iterator is also
   iterable and may be used in most places where other iterables are
   accepted.  One notable exception is code which attempts multiple
   iteration passes.  A container object (such as a "list") produces a
   fresh new iterator each time you pass it to the "iter()" function
   or use it in a "for" loop.  Attempting this with an iterator will
   just return the same exhausted iterator object used in the previous
   iteration pass, making it appear like an empty container.

   Περισσότερες πληροφορίες μπορούν να βρεθούν στο Τύποι Iterator.

συνάρτηση key
   Μια συνάρτηση κλειδί ή μια συνάρτηση ταξινόμησης είναι μια
   δυνατότητα κλήσης που επιστρέφει μια τιμή που χρησιμοποιείται για
   ταξινόμηση ή διάταξη. Για παράδειγμα, "locale.strxfrm()"
   χρησιμοποιείται για την παραγωγή ενός κλειδιού ταξινόμησης που
   γνωρίζει τις συμβάσεις ταξινόμησης για συγκεκριμένες τοπικές
   ρυθμίσεις.

   Ένα αριθμός εργαλείων στην Python δέχεται βασικές συναρτήσεις για
   τον έλεγχο του τρόπου με τον οποίο τα στοιχεία ταξινομούνται ή
   ομαδοποιούνται. Αυτά περιέχουν "min()", "max()", "sorted()",
   "list.sort()", "heapq.merge()", "heapq.nsmallest()", "heapq.
   nlargest()", και "itertools.groupby()".

   There are several ways to create a key function.  For example. the
   "str.lower()" method can serve as a key function for case
   insensitive sorts.  Alternatively, a key function can be built from
   a "lambda" expression such as "lambda r: (r[0], r[2])".  Also, the
   "operator" module provides three key function constructors:
   "attrgetter()", "itemgetter()", and "methodcaller()".  See the
   Sorting HOW TO for examples of how to create and use key functions.

όρισμα keyword
   Βλ. *argument*.

lambda
   Μια ανώνυμη ενσωματωμένη συνάρτηση που αποτελείται από μια μοναδική
   *expression* η οποία αξιολογείται όταν καλείται η συνάρτηση. Η
   σύνταξη για τη δημιουργία μιας συνάρτησης lambda είναι "lambda
   [parameters]: expression"

LBYL
   Look before you leap.  Αυτό το στυλ κωδικοποίησης ελέγχει ρητά τις
   προϋποθέσεις πριν πραγματοποιήσει κλήσεις ή αναζητήσεις.  Αυτό το
   στυλ έρχεται σε αντίθεση με την προσέγγιση *EAFP* και
   χαρακτηρίζεται από την παρουσία πολλών δηλώσεων "if".

   Σε ένα περιβάλλον πολλαπλών νημάτων, η προσέγγιση LBYL μπορεί να
   διακινδυνεύσει να εισάγει μια συνθήκη αγώνα μεταξύ "the Looking"
   και "the leaping". Για παράδειγμα ο κώδικας, "if key in mapping:
   return mapping[key]" μπορεί να αποτύχει εάν ένα άλλο νήμα αφαιρέσει
   το *key* από το *mapping* μετά τη δοκιμή, αλλά πριν από την
   αναζήτηση. Αυτό το πρόβλημα μπορεί να λυθεί με κλειδώματα ή
   χρησιμοποιώντας την προσέγγιση EAFP.

λίστα
   A built-in Python *sequence*.  Despite its name it is more akin to
   an array in other languages than to a linked list since access to
   elements is O(1).

list comprehension
   Ένα συμπαγής τρόπος για να επεξεργαστείτε όλα ή μέρος των στοιχείων
   σε μια ακολουθία και να επιστρέψετε μια λίστα με τα αποτελέσματα.
   "result = ['{:#04x}'.format(x) for x in range(256) if x % 2 == 0]"
   δημιουργεί μια λίστα συμβολοσειρών που περιέχουν ζυγούς
   δεκαεξαδικούς αριθμούς (0x..) στο εύρος από 0 έως 255. Η πρόταση
   "if" είναι προαιρετική. Εάν παραλειφθεί, όλα τα στοιχεία στο
   "range(256)" υποβάλλονται σε επεξεργασία.

loader
   An object that loads a module. It must define a method named
   "load_module()". A loader is typically returned by a *finder*. See
   **PEP 302** for details and "importlib.abc.Loader" for an *abstract
   base class*.

μαγική μέθοδος
   Ένα άτυπο συνώνυμο για *special method*.

mapping
   A container object that supports arbitrary key lookups and
   implements the methods specified in the "Mapping" or
   "MutableMapping" abstract base classes.  Examples include "dict",
   "collections.defaultdict", "collections.OrderedDict" and
   "collections.Counter".

meta path finder
   Ένας *finder* που επιστράφηκε με αναζήτηση στο "sys.meta_path". Οι
   finders μετα-διαδρομής σχετίζονται, αλλά διαφέρουν από τα *finders
   entry διαδρομής*.

   Βλ. "importlib.abc.MetaPathFinder" για τις μεθόδους που υλοποιούν
   οι meta path finders.

μετα-κλάση
   Η κλάση μιας κλάσης. Οι ορισμοί κλάσης δημιουργούν ένα όνομα
   κλάσης, ένα λεξικό κλάσης και μια λίστα βασικών κλάσεων. Η
   μετα-κλάση είναι υπεύθυνη για την απόκτηση αυτών των τριών
   ορισμάτων και την δημιουργία της κλάσης. Οι περισσότερες
   αντικειμενοστρεφείς γλώσσες προγραμματισμού παρέχουν μια
   προεπιλεγμένη υλοποίηση. Αυτό που κάνει την Python ξεχωριστή είναι
   ότι είναι δυνατή η δημιουργία προσαρμοσμένων μετακλάσεων. Οι
   περισσότεροι χρήστες δεν χρειάζονται ποτέ αυτό το εργαλείο, αλλά
   όταν παραστεί ανάγκη, αυτό το εργαλείο, οι μετα-κλάσεις μπορούν να
   παρέχουν ισχυρές, κομψές λύσεις. Έχουν χρησιμοποιηθεί για την
   καταγραφή πρόσβασης χαρακτηριστικών, την προσθήκη ασφάλειας
   νημάτων, την παρακολούθηση δημιουργίας αντικειμένων, την υλοποίηση
   *singletons*, και πολλές άλλες εργασίες.

   Περισσότερες πληροφορίες μπορούν να βρεθούν στο Metaclasses.

μέθοδος
   Μια συνάρτηση που ορίζεται μέσα στο σώμα μιας κλάσης.  Εάν καλείται
   ως χαρακτηριστικό μιας περίπτωσης αυτής της κλάσης, η μέθοδος θα
   λάβει αντικείμενο περίπτωσης ως πρώτο της *argument* (το οποίο
   συνήθως ονομάζεται "self"). Βλ. *function* και *nested scope*.

σειρά ανάλυσης μεθόδων
   Method Resolution Order is the order in which base classes are
   searched for a member during lookup. See The Python 2.3 Method
   Resolution Order for details of the algorithm used by the Python
   interpreter since the 2.3 release.

module
   Ένα αντικείμενο που χρησιμεύει ως οργανωτική μονάδα του κώδικα της
   Python.  Τα modules έχουν έναν χώρο ονομάτων που περιέχει αυθαίρετα
   αντικείμενα Python.  Τα modules φορτώνονται στην Python με την
   διαδικασία *importing*.

   Βλ. επίσης *package*.

τεχνικές προδιαγραφές module
   Ένα namespace που περιέχει τις πληροφορίες που σχετίζονται με την
   εισαγωγή που χρησιμοποιούνται για την φόρτωση ενός module. Μια
   περίπτωση του "importlib.machinery.ModuleSpec".

MRO
   Βλ. *method resolution order*.

mutable
   Τα ευμετάβλητα αντικείμενα μπορούν να αλλάξουν τις τιμές αλλά να
   κρατήσουν τα "id()". Βλ. επίσης *immutable*.

named tuple
   Ο όρος "named tuple" εφαρμόζεται για οποιονδήποτε τύπο ή κλάση που
   κληρονομείται από την πλειάδα και των οποίων τα στοιχεία μπορούν να
   ευρετηριοποιηθούν είναι προσβάσιμα χρησιμοποιώντας επώνυμα
   χαρακτηριστικά.  Ο τύπος ή η κλάση μπορεί να έχει και άλλα
   χαρακτηριστικά.

   Πολλοί ενσωματωμένοι τύποι είναι named tuples, συμπεριλαμβανομένων
   των τιμών που επιστρέφονται από "time.localtime()" και "os.stat()".
   Ένα άλλο παράδειγμα είναι το "sys.float_info":

      >>> sys.float_info[1]                   # indexed access
      1024
      >>> sys.float_info.max_exp              # named field access
      1024
      >>> isinstance(sys.float_info, tuple)   # kind of tuple
      True

   Some named tuples are built-in types (such as the above examples).
   Alternatively, a named tuple can be created from a regular class
   definition that inherits from "tuple" and that defines named
   fields.  Such a class can be written by hand or it can be created
   with the factory function "collections.namedtuple()".  The latter
   technique also adds some extra methods that may not be found in
   hand-written or built-in named tuples.

namespace
   Το μέρος όπου αποθηκεύεται μια μεταβλητή.  Τα namespaces
   υλοποιούνται ως λεξικά. Υπάρχουν οι τοπικοί, οι καθολικοί και οι
   ενσωματωμένοι namespaces καθώς και οι ένθετοι namespaces σε
   αντικείμενα (σε μεθόδους).  Για παράδειγμα οι συναρτήσεις
   "builtins.open" και "os.open()" διακρίνονται από τους χώρους
   ονομάτων τους.  Οι χώροι ονομάτων βοηθούν επίσης την αναγνωσιμότητα
   και τη συντηρησιμότητα καθιστώντας σαφές ποιο module υλοποιεί μια
   λειτουργία. Για παράδειγμα, γράφοντας "random.seed()" ή
   "itertools.islice()" καθιστά σαφές ότι αυτές οι συναρτήσεις
   υλοποιούνται από τα module "random" και "itertools", αντίστοιχα.

πακέτο namespace
   A **PEP 420** *package* which serves only as a container for
   subpackages.  Namespace packages may have no physical
   representation, and specifically are not like a *regular package*
   because they have no "__init__.py" file.

   Βλ. επίσης *module*.

nested scope
   Η δυνατότητα αναφοράς σε μια μεταβλητή σε έναν περικλειόμενο
   ορισμό. Για παράδειγμα μια συνάρτηση που ορίζεται μέσα σε μια άλλη
   συνάρτηση μπορεί να αναφέρεται σε μεταβλητές στην εξωτερική
   συνάρτηση. Σημειώστε ότι τα ένθετα πεδία από προεπιλογή λειτουργούν
   μόνο για αναφορά και όχι για εκχώρηση. Οι τοπικές μεταβλητές
   διαβάζονται και γράφονται στο εσωτερικό πεδίο εφαρμογής. Ομοίως, οι
   καθολικές μεταβλητές διαβάζουν και γράφουν στον καθολικό χώρο
   ονομάτων. Το "nonlocal" επιτρέπει την εγγραφή σε εξωτερικά πεδία.

κλάση νέου στυλ
   Old name for the flavor of classes now used for all class objects.
   In earlier Python versions, only new-style classes could use
   Python's newer, versatile features like "__slots__", descriptors,
   properties, "__getattribute__()", class methods, and static
   methods.

αντικείμενο
   Οποιαδήποτε δεδομένα με κατάσταση (χαρακτηριστικά ή τιμή) και
   καθορισμένη συμπεριφορά (μέθοδοι). Επίσης, η τελική βασική κλάση
   οποιασδήποτε *new-style class*.

πακέτο
   A Python *module* which can contain submodules or recursively,
   subpackages.  Technically, a package is a Python module with an
   "__path__" attribute.

   Βλ. επίσης *regular package* και *namespace package*.

παράμετρος
   Μια έγκυρη οντότητα σε έναν ορισμό *function* (ή μέθοδος) που
   καθορίζει ένα *argument* (ή σε ορισμένες περιπτώσεις, ορίσματα) που
   μπορεί να δεχθεί η συνάρτηση. Υπάρχουν πέντε είδη παραμέτρων:

   * *λέξη-κλειδί ή θέση*: καθορίζει ένα όρισμα που μπορεί να
     μεταβιβαστεί είτε *θέσεως* ή ως *όρισμα λέξης-κλειδιού*.  Αυτό
     είναι το προεπιλεγμένο είδος παραμέτρου, για παράδειγμα *foo* και
     *bar* στα ακόλουθα:

        def func(foo, bar=None): ...

   * *θέσεως μόνο*: καθορίζει ένα όρισμα που μπορεί να παρέχεται μόνο
     από τη θέση. Οι παράμετροι μόνο θέσης μπορούν να οριστούν
     συμπεριλαμβάνοντας έναν χαρακτήρα "/" στη λίστα παραμέτρων του
     ορισμού συνάρτησης μετά από αυτές, για παράδειγμα *posonly1* και
     *posonly2* στα εξής:

        def func(posonly1, posonly2, /, positional_or_keyword): ...

   * *λέξης-κλειδί μόνο*: καθορίζει ένα όρισμα που μπορεί να παρέχεται
     μόνο με λέξη κλειδί. Οι παράμετροι μόνο για λέξη-κλειδί μπορούν
     να οριστούν συμπεριλαμβάνοντας μια παράμετρο θέσης ή σκέτο "*"
     στη λίστα παραμέτρων του ορισμού συνάρτησης πριν από αυτές, για
     παράδειγμα *kw_only1* και *kw_only2* στα ακόλουθα:

        def func(arg, *, kw_only1, kw_only2): ...

   * *μεταβλητή θέσης*: καθορίζει ότι μπορεί να παρασχεθεί μια
     αυθαίρετη ακολουθία ορισμάτων θέσης (επιπλέον των ορισμάτων θέσης
     που είναι ήδη αποδεκτά από άλλες παραμέτρους). Μια τέτοια
     παράμετρος μπορεί να οριστεί προσαρτώντας το όνομα της παραμέτρου
     με "*", για παράδειγμα *args* στα ακόλουθα:

        def func(*args, **kwargs): ...

   * *μεταβλητή λέξη-κλειδί*: καθορίζει ότι μπορούν να παρέχονται
     αυθαίρετα πολλά ορίσματα λέξης-κλειδιού (επιπλέον των ορισμάτων
     λέξης κλειδιού που είναι αποδεκτά από άλλες παραμέτρους).  Μια
     τέτοια παράμετρος μπορεί να οριστεί προσαρτώντας το όνομα της
     παραμέτρου με "**", για παράδειγμα *kwargs* όπως παραπάνω.

   Οι παράμετροι μπορούν να καθορίσουν τόσο τα προαιρετικά όσο και τα
   απαιτούμενα ορίσματα , καθώς και προεπιλεγμένες τιμές για ορισμένα
   προαιρετικά ορίσματα.

   Βλ. επίσης την *argument* καταχώριση ευρετηρίου, την ερώτηση FAQ
   σχετικά με η διαφορά μεταξύ ορισμάτων και παραμέτρων, την κλάση
   "inspect.Parameter", την ενότητα Function definitions και **PEP
   362**.

path entry
   Μια μεμονωμένη τοποθεσία στο *import path* την οποία συμβουλεύεται
   ο *path based finder* για να βρει modules για εισαγωγή.

path entry finder
   Ένας *finder* που επιστρέφεται από έναν καλούμενο στο
   "sys.path_hooks" (δηλαδή ένα *path entry hook*) που ξέρει πως να
   εντοπίζει modules με *path entry*.

   Βλ. "importlib.abc.PathEntryFinder" για τις μεθόδους που ο entry
   finder διαδρομής υλοποιεί.

path entry hook
   A callable on the "sys.path_hook" list which returns a *path entry
   finder* if it knows how to find modules on a specific *path entry*.

path based finder
   Ένα από τα προεπιλεγμένα *meta path finders* που αναζητά ένα
   *import path* για modules.

path-like αντικείμενο
   Ένα αντικείμενο που αντιπροσωπεύει ένα path συστήματος αρχείων. Ένα
   αντικείμενο path είναι είτε ένα αντικείμενο "str" ή "bytes" που
   αντιπροσωπεύει ένα path ή ένα αντικείμενο που υλοποιεί το
   πρωτόκολλο "os.PathLike". Ένα αντικείμενο που υποστηρίζει το
   πρωτόκολλο "os.PathLike" μπορεί να μετατραπεί σε path συστήματος
   αρχείων "str" ή "bytes" καλώντας την συνάρτηση "os.fspath()"' τα
   "os.fsdecode()" και "os.fsencode()" μπορούν να χρησιμοποιηθούν για
   την εγγύηση ενός αποτελέσματος "str" ή "bytes", αντίστοιχα. Εισήχθη
   από τον **PEP 519**.

PEP
   Πρόταση Βελτίωσης Python. Ένα PEP είναι ένα έγγραφο σχεδιασμού που
   παρέχει πληροφορίες στην κοινότητα Python ή περιγράφει μια νέα
   δυνατότητα για την Python ή τις διαδικασίες ή το περιβάλλον της. Τα
   PEP θα πρέπει να παρέχουν μια συνοπτική τεχνική προδιαγραφή και μια
   λογική για τα προτεινόμενα χαρακτηριστικά.

   Τα PEP προορίζονται να είναι οι κύριοι μηχανισμοί για την πρόταση
   σημαντικών νέων χαρακτηριστικών, για τη συλλογή πληροφοριών της
   κοινότητας για ένα ζήτημα και για την τεκμηρίωση των αποφάσεων
   σχεδιασμού που έχουν εισαχθεί στην Python. Ο συγγραφέας του PEP
   είναι υπεύθυνος για την οικοδόμηση συναίνεσης εντός της κοινότητας
   και την τεκμηρίωση αντίθετων απόψεων.

   Βλ. **PEP 1**.

τμήμα
   Ένα σύνολο από αρχεία σε έναν μόνο κατάλογο (ενδεχομένως
   αποθηκευμένο σε αρχείο *zip*) που συμβάλλουν σε ένα namespace
   πακέτο, όπως ορίζεται στο **PEP 420**.

όρισμα θέσης
   Βλ. *argument*.

provisional API
   Ένα provisional API είναι αυτό που έχει εσκεμμένα εξαιρεθεί από τις
   backwards εγγυήσεις συμβατότητας της τυπικής βιβλιοθήκης. Αν και
   δεν αναμένονται σημαντικές αλλαγές σε τέτοιες διεπαφές, εφόσον
   επισημαίνονται ως προσωρινές, αλλαγές μη backwards συμβατότητας
   (μέχρι και κατάργηση της διεπαφής) μπορεί να προκύψουν εάν κριθεί
   απαραίτητο από τους βασικούς προγραμματιστές. Τέτοιες αλλαγές δεν
   θα γίνουν άσκοπα -- θα συμβούν μόνο εάν αποκαλυφθούν σοβαρά
   θεμελιώδη ελαττώματα που παραλείφθηκαν πριν από τη συμπερίληψη του
   API.

   Ακόμη και για provisional API, οι μη backwards συμβατές αλλαγές
   θεωρούνται "λύση έσχατης ανάγκης"- θα εξακολουθεί να γίνεται κάθε
   προσπάθεια για να βρεθεί μια λύση backwards συμβατή σε τυχόν
   εντοπισμένα προβλήματα.

   Αυτή η διαδικασία επιτρέπει στην τυπική βιβλιοθήκη να συνεχίσει να
   εξελίσσεται με την πάροδο του χρόνου, χωρίς να κλειδώνει
   προβληματικά σφάλματα σχεδιασμού για εκτεταμένες χρονικές
   περιόδους. Βλ. **PEP 411** για περισσότερες λεπτομέρειες.

provisional πακέτο
   Βλ. *provisional API*.

Python 3000
   Ψευδώνυμο για το σύνολο εκδόσεων Python 3.x (επινοήθηκε πριν από
   πολύ καιρό όταν η κυκλοφορία της έκδοσης 3 ήταν κάτι στο μακρινό
   μέλλον.)  Αυτό ονομάζεται επίσης ως συντομογραφία "Py3k".

Pythonic
   Μια ιδέα ή ένα κομμάτι κώδικα που ακολουθεί πιστά τα πιο κοινά
   ιδιώματα της γλώσσας Python, αντί να υλοποιεί κώδικα
   χρησιμοποιώντας έννοιες κοινές σε άλλες γλώσσες.  Για παράδειγμα,
   ένα κοινό ιδίωμα στην Python είναι να κάνει μια επανάληψη πάνω από
   όλα τα στοιχεία ενός iterable χρησιμοποιώντας μια δήλωση "for".
   Πολλές άλλες γλώσσες που δεν έχουν αυτόν τον τύπο κατασκευής, έτσι
   οι άνθρωποι που δεν είναι εξοικειωμένοι με την Python χρησιμοποιούν
   μερικές φορές έναν αριθμητικό μετρητή:

      for i in range(len(food)):
          print(food[i])

   Αντίθετα, μια πιο καθαρή μέθοδος Pythonic:

      for piece in food:
          print(piece)

αναγνωρισμένο όνομα
   Ένα όνομα με κουκκίδες που δείχνει τη "διαδρομή" από το καθολικό
   εύρος ενός module σε μια κλάση, συνάρτηση ή μέθοδο που ορίζεται σε
   αυτήν την ενότητα, όπως ορίζεται στο **PEP 3155**. Για συναρτήσεις
   και κλάσεις ανώτατου επιπέδου, το αναγνωρισμένο όνομα είναι ίδιο με
   το όνομα του αντικειμένου:

      >>> class C:
      ...     class D:
      ...         def meth(self):
      ...             pass
      ...
      >>> C.__qualname__
      'C'
      >>> C.D.__qualname__
      'C.D'
      >>> C.D.meth.__qualname__
      'C.D.meth'

   Όταν χρησιμοποιείται για αναφορά σε modules , το *πλήρως
   αναγνωρισμένο όνομα* σημαίνει ολόκληρο το διακεκομμένο path προς το
   module, συμπεριλαμβανομένων τυχόν γονικών πακέτων π.χ.
   "email.mime.text":

      >>> import email.mime.text
      >>> email.mime.text.__name__
      'email.mime.text'

πλήθος αναφοράς
   The number of references to an object.  When the reference count of
   an object drops to zero, it is deallocated.  Reference counting is
   generally not visible to Python code, but it is a key element of
   the *CPython* implementation.  The "sys" module defines a
   "getrefcount()" function that programmers can call to return the
   reference count for a particular object.

κανονικό πακέτο
   Ένα παραδοσιακό *package*, όπως ένας κατάλογος που περιέχει ένα
   "__init__.py" αρχείο.

   Βλ. επίσης *namespace package*.

__slots__
   Μια δήλωση μέσα σε μια κλάση που εξοικονομεί μνήμη δηλώνοντας εκ
   των προτέρων χώρο για παράδειγμα χαρακτηριστικά και εξαλείφοντας
   λεξικά στιγμιοτύπων.  Αν και δημοφιλής, η τεχνική είναι κάπως
   δύσκολο να γίνει σωστή και προορίζεται καλύτερα για σπάνιες
   περιπτώσεις όπου υπάρχει μεγάλος αριθμός στιγμιοτύπων σε μια
   εφαρμογή κρίσιμης-μνήμης.

ακολουθία
   An *iterable* which supports efficient element access using integer
   indices via the "__getitem__()" special method and defines a
   "__len__()" method that returns the length of the sequence. Some
   built-in sequence types are "list", "str", "tuple", and "bytes".
   Note that "dict" also supports "__getitem__()" and "__len__()", but
   is considered a mapping rather than a sequence because the lookups
   use arbitrary *immutable* keys rather than integers.

   The "collections.abc.Sequence" abstract base class defines a much
   richer interface that goes beyond just "__getitem__()" and
   "__len__()", adding "count()", "index()", "__contains__()", and
   "__reversed__()". Types that implement this expanded interface can
   be registered explicitly using "register()".

set comprehension
   Ένας συμπαγής τρόπος για να επεξεργαστείτε όλα ή μέρος των
   στοιχείων σε ένα iterable και να επιστραφεί ένα σύνολο με τα
   αποτελέσματα. "results = {c for c in 'abracadabra' if c not in
   'abc'}" δημιουργεί το σύνολο συμβολοσειρών "{'r', 'd'}". Βλ.
   Displays for lists, sets and dictionaries.

μοναδικό dispatch
   Μια μορφή dispatch *generic function* όπου η υλοποίηση επιλέγεται
   με βάση τον τύπο ενός μεμονωμένου ορίσματος.

slice
   Ένα αντικείμενο που συνήθως περιέχει ένα τμήμα μιας ακολουθίας
   *sequence*.  Δημιουργείται ένα slice χρησιμοποιώντας τη σημείωση
   subscript, "[]" με άνω και κάτω τελείες μεταξύ αριθμών όταν
   δίνονται πολλοί, όπως στο "variable_name[1:3:5]".  Η σημείωση
   αγκύλης (subscript) χρησιμοποιεί εσωτερικά αντικείμενα "slice".

ειδική μέθοδος
   Μια μέθοδος που καλείται σιωπηρά από την Python για να εκτελέσει
   μια συγκεκριμένη λειτουργία σε έναν τύπο, όπως η προσθήκη. Τέτοιες
   μέθοδοι έχουνε ονόματα που ξεκινούν και τελειώνουν με διπλές κάτω
   παύλες. Οι ειδικές μέθοδοι τεκμηριώνονται στο Special method names.

δήλωση
   Μια πρόταση είναι μέρος μιας σουίτας (ένα "μπλοκ" κώδικα). Μια
   πρόταση είναι είτε ένας *expression* είτε μια από πολλές δομές με
   μια λέξη-κλειδί όπως "if", "while" ή "for".

κωδικοποίηση κειμένου
   Μια συμβολοσειρά στην Python είναι μια ακολουθία σημείων κώδικα
   Unicode (στο εύρος "U+0000"--"U+10FFFF"). Για να αποθηκεύσετε ή να
   μεταφέρετε μια συμβολοσειρά, πρέπει να σειριοποιηθεί ως δυαδική
   ακολουθία.

   Η σειριοποίηση μιας συμβολοσειράς σε μια δυαδική ακολουθία είναι
   γνωστή ως "κωδικοποίηση" , και η αναδημιουργία της συμβολοσειράς
   από την δυαδική ακολουθία είναι γνωστή ως "αποκωδικοποίηση".

   Υπάρχει μια ποικιλία διαφορετικής σειριοποίησης κειμένου codecs, οι
   οποίοι συλλογικά αναφέρονται ως "κωδικοποιήσεις κειμένου".

αρχείο κειμένου
   Ένα *file object* ικανό να διαβάζει και να γράφει αντικείμενα
   "str". Συχνά, ένα αρχείο κειμένου αποκτά πραγματικά πρόσβαση σε μια
   ροή δυαδική ροή δεδομένων και χειρίζεται αυτόματα την *text
   encoding*. Παραδείγματα αρχείων κειμένου είναι αρχεία που ανοίγουν
   σε λειτουργία κειμένου ("'r'" ή "'w'"), "sys.stdin", "sys.stdout",
   και στιγμιότυπα του "io.StringIO".

   Βλ. επίσης *binary file* για ένα αντικείμενο αρχείου με δυνατότητα
   ανάγνωσης και εγγραφής *δυαδικά αντικείμενα*.

συμβολοσειρά τριπλών εισαγωγικών
   Μια συμβολοσειρά που δεσμεύεται από τρεις περιπτώσεις είτε ενός
   εισαγωγικού (") ή μιας αποστρόφου ('). Αν και δεν παρέχουν καμία
   λειτουργικότητα που δεν είναι διαθέσιμη με συμβολοσειρές με μονά
   εισαγωγικά, είναι χρήσιμες για διαφόρους λόγους. Σας επιτρέπουν να
   συμπεριλάβετε μονά και διπλά εισαγωγικά χωρίς διαφυγή σε μια
   συμβολοσειρά και μπορούν να εκτείνονται σε πολλές γραμμές χωρίς τη
   χρήση του χαρακτήρα συνέχεια, καθιστώντας τα ιδιαίτερα χρήσιμα κατά
   τη σύνταξη εγγράφων με συμβολοσειρές.

τύπος
   The type of a Python object determines what kind of object it is;
   every object has a type.  An object's type is accessible as its
   "__class__" attribute or can be retrieved with "type(obj)".

type alias
   Ένα συνώνυμο για έναν τύπο, που δημιουργείται με την ανάθεση τύπου
   σε ένα αναγνωριστικό.

   Τα type aliases είναι χρήσιμα για την απλοποίηση *type alias*. Για
   παράδειγμα:

      def remove_gray_shades(
              colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]:
          pass

   μπορεί να γίνει πιο ευανάγνωστο όπως:

      Color = tuple[int, int, int]

      def remove_gray_shades(colors: list[Color]) -> list[Color]:
          pass

   Βλ. "typing" και **PEP 484**, που περιγράφει αυτήν την
   λειτουργικότητα.

type hint
   Ένας *annotation* που καθορίζει τον αναμενόμενο τύπο για μια
   μεταβλητή, ένα χαρακτηριστικό κλάσης ή μια παράμετρο συνάρτησης ή
   τιμή επιστροφής.

   Type hints are optional and are not enforced by Python but they are
   useful to static type analysis tools, and aid IDEs with code
   completion and refactoring.

   Υποδείξεις τύπου (type hints) για καθολικές μεταβλητές,
   χαρακτηριστικά κλάσης και συναρτήσεις , αλλά όχι τοπικές
   μεταβλητές, μπορούν να προσπελαστούν χρησιμοποιώντας το
   "typing.get_type_hints()".

   Βλ. "typing" και **PEP 484**, που περιγράφει αυτήν την
   λειτουργικότητα.

καθολικές νέες γραμμές
   Ένα τρόπος ερμηνείας ροών κειμένου στον οποίο όλα τα ακόλουθα
   αναγνωρίζονται ως λήξεις μιας γραμμής: η σύμβαση τέλους γραμμής του
   Unix "'\n'", η σύμβαση των Windows "'\r\n'", και την παλιά σύμβαση
   Macintosh "'\r'". Βλ. **PEP 278** και **PEP 3116**, καθώς και
   "bytes.splitlines()" για πρόσθετη χρήση.

annotation μεταβλητής
   Ένας *annotation* μια μεταβλητής ή ενός χαρακτηριστικού κλάσης.

   Όταν annotating μια μεταβλητή ή ένα χαρακτηριστικό κλάσης, η
   ανάθεση είναι προαιρετική:

      class C:
          field: 'annotation'

   Τα annotations μεταβλητών χρησιμοποιούνται συνήθως για *type
   hints*: για παράδειγμα αυτή η μεταβλητή αναμένεται να λάβει τιμές
   "int":

      count: int = 0

   Η σύνταξη annotation μεταβλητής περιγράφεται στην ενότητα Annotated
   assignment statements.

   See *function annotation*, **PEP 484** and **PEP 526**, which
   describe this functionality.

virtual environment
   Ένα συνεργατικά απομονωμένο περιβάλλον χρόνου εκτέλεσης που
   επιτρέπει στους χρήστες και τις εφαρμογές της Python να
   εγκαταστήσουν και να αναβαθμίσουν πακέτα διανομής Python χωρίς να
   παρεμβαίνουν στη συμπεριφορά άλλων εφαρμογών Python που εκτελούνται
   στο ίδιο σύστημα.

   Βλ. επίσης "venv".

virtual machine
   Ένας υπολογιστής ορίζεται εξ ολοκλήρου από το λογισμικό. Η εικονική
   μηχανή της Python εκτελεί το *bytecode* που εκπέμπεται από τον
   μεταγλωττιστή bytecode.

Zen της Python
   Κατάλογος σχεδιαστικών αρχών και φιλοσοφιών που είναι χρήσιμες για
   την κατανόηση και τη χρήση της γλώσσας. Ο κατάλογος μπορεί να
   βρεθεί πληκτρολογώντας ""import this"" στην διαδραστική κονσόλα.
