diff --git a/.github/workflows/precommit.yaml b/.github/workflows/precommit.yaml index 18c35af6..0376d6c6 100644 --- a/.github/workflows/precommit.yaml +++ b/.github/workflows/precommit.yaml @@ -14,7 +14,7 @@ jobs: steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: - submodules: "true" + submodules: true fetch-depth: 2 - name: Setup python uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f # v5.1.1 @@ -25,5 +25,5 @@ jobs: sudo apt-get update sudo apt-get install -y hunspell hunspell-el gettext language-pack-el locales-all - uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1 - - uses: pre-commit-ci/lite-action@9d882e7a565f7008d4faf128f27d1cb6503d4ebf # v1.0.2 + - uses: pre-commit-ci/lite-action@5d6cc0eb514c891a40562a58a8e71576c5c7fb43 # v1.1.0 if: always() diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 959a57ea..ccdfe361 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: 2c9f875913ee60ca25ce70243dc24d5b6415598c # v4.6.0 + rev: cef0300fd0fc4d2a87a85fa2093c6b283ea36f4b # v5.0.0 hooks: - id: file-contents-sorter files: "dictionaries/main.txt" @@ -10,7 +10,7 @@ repos: - id: end-of-file-fixer - repo: https://git.afpy.org/AFPy/powrap - rev: df2a0a54804a6146cc9fbffb77464d4b5fe24f41 # v1.0.1 + rev: 416de333cc58dce4453d1257769d7c9abdde95f7 # v1.0.2 hooks: - id: powrap @@ -23,6 +23,6 @@ repos: - "--personal-dict=dictionaries/main.txt" - repo: https://github.com/sphinx-contrib/sphinx-lint - rev: ce6d7aeab24d60b6119dbad180540bf3c9ff31da # v0.9.1 + rev: ff671d6a030a3141634793e6d1e8909ab6091830 # v1.0.0 hooks: - id: sphinx-lint diff --git a/Makefile b/Makefile index a11d757e..b06e5906 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,6 @@ CPYTHON_CURRENT_COMMIT := 9cbde7c6ce6f7b93301a37f03dfa0c0d45e00a39 CPYTHON_PATH := ./cpython LANGUAGE := el -TRANSLATION_BRANCH := main BRANCH := 3.12 EXCLUDED := whatsnew/ c-api/ @@ -119,7 +118,7 @@ wrap: ensure_prerequisites @echo "Verify wrapping" powrap --check --quiet *.po **/*.po -SRCS = $(shell git diff --name-only $(TRANSLATION_BRANCH) | grep '.po$$') +SRCS = $(shell git diff --name-only $(BRANCH) | grep '.po$$') # foo/bar.po => $(POSPELL_TMP_DIR)/foo/bar.po.out DESTS = $(addprefix $(POSPELL_TMP_DIR)/,$(addsuffix .out,$(SRCS))) diff --git a/tutorial/classes.po b/tutorial/classes.po index 6610cea7..414cb46a 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -9,9 +9,9 @@ msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-14 12:51+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2024-12-10 12:00+0000\n" +"Last-Translator: Anastasios Louka \n" +"Language-Team: PyGreece \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -28,11 +28,13 @@ msgid "" "attributes attached to it for maintaining its state. Class instances can " "also have methods (defined by its class) for modifying its state." msgstr "" -"Οι κλάσεις παρέχουν ένα μέσο ομαδοποίησης δεδομένων και λειτουργικότητας. " -"Η δημιουργία μιας νέας κλάσης δημιουργεί έναν νέο *τύπο* αντικειμένου, επιτρέποντας νέα " -"*στιγμιότυπα* αυτού του τύπου που πρόκειται να γίνουν. Κάθε στιγμιότυπο κλάσης μπορεί να έχει " -"χαρακτηριστικά που συνδέονται με αυτό για τη διατήρηση της κατάστασής του. Τα στιγμιότυπα κλάσης μπορούν " -"να έχουν επίσης μεθόδους (που ορίζονται από την κλάση του) για την τροποποίηση της κατάστασής του." +"Οι κλάσεις παρέχουν ένα μέσο ομαδοποίησης δεδομένων και λειτουργικότητας. Η " +"δημιουργία μιας νέας κλάσης δημιουργεί έναν νέο *τύπο* αντικειμένου, " +"επιτρέποντας νέα *στιγμιότυπα* αυτού του τύπου που πρόκειται να γίνουν. Κάθε " +"στιγμιότυπο κλάσης μπορεί να έχει χαρακτηριστικά που συνδέονται με αυτό για " +"τη διατήρηση της κατάστασής του. Τα στιγμιότυπα κλάσης μπορούν να έχουν " +"επίσης μεθόδους (που ορίζονται από την κλάση του) για την τροποποίηση της " +"κατάστασής του." #: tutorial/classes.rst:13 msgid "" @@ -47,16 +49,18 @@ msgid "" "nature of Python: they are created at runtime, and can be modified further " "after creation." msgstr "" -"Σε σύγκριση με άλλες γλώσσες προγραμματισμού, ο μηχανισμός κλάσης της Python προσθέτει " -"κλάσεις με ελάχιστο νέο συντακτικό και σημασιολογία. Είναι ένα μείγμα των " -"μηχανισμών κλάσεων που βρέθηκαν στη C++ και στο Modula-3. Οι κλάσεις της Python παρέχουν όλα τα " -"standard χαρακτηριστικά του Αντικειμενοστραφούς Προγραμματισμού: ο μηχανισμός της κληρονομικότητας της κλάσης " -"επιτρέπει την ύπαρξη πολλαπλών βασικών κλάσεων, μια παραγόμενη κλάση να μπορεί να παρακάμψει οποιεσδήποτε " -"μεθόδους της βασικής κλάσης ή κλάσεων, και μια μέθοδος να μπορεί να καλέσει τη μέθοδο μίας " -"βασικής κλάσης με το ίδιο όνομα. Τα αντικείμενα μπορούν να περιέχουν αυθαίρετα ποσά και " -"είδη δεδομένων. Όπως ισχύει για τα modules, οι κλάσεις συμμετέχουν στη δυναμική " -"φύση της Python: δημιουργούνται κατά το χρόνο εκτέλεσης και μπορούν να τροποποιηθούν περαιτέρω " -"μετά τη δημιουργία. " +"Σε σύγκριση με άλλες γλώσσες προγραμματισμού, ο μηχανισμός κλάσης της Python " +"προσθέτει κλάσεις με ελάχιστο νέο συντακτικό και σημασιολογία. Είναι ένα " +"μείγμα των μηχανισμών κλάσεων που βρέθηκαν στη C++ και στο Modula-3. Οι " +"κλάσεις της Python παρέχουν όλα τα standard χαρακτηριστικά του " +"Αντικειμενοστραφούς Προγραμματισμού: ο μηχανισμός της κληρονομικότητας της " +"κλάσης επιτρέπει την ύπαρξη πολλαπλών βασικών κλάσεων, μια παραγόμενη κλάση " +"να μπορεί να παρακάμψει οποιεσδήποτε μεθόδους της βασικής κλάσης ή κλάσεων, " +"και μια μέθοδος να μπορεί να καλέσει τη μέθοδο μίας βασικής κλάσης με το " +"ίδιο όνομα. Τα αντικείμενα μπορούν να περιέχουν αυθαίρετα ποσά και είδη " +"δεδομένων. Όπως ισχύει για τα modules, οι κλάσεις συμμετέχουν στη δυναμική " +"φύση της Python: δημιουργούνται κατά το χρόνο εκτέλεσης και μπορούν να " +"τροποποιηθούν περαιτέρω μετά τη δημιουργία. " #: tutorial/classes.rst:23 msgid "" @@ -72,17 +76,18 @@ msgid "" "(arithmetic operators, subscripting etc.) can be redefined for class " "instances." msgstr "" -"Στην ορολογία της C++, συνήθως τα μέλη της κλάσης (συμπεριλαμβανομένων των μελών δεδομένων) είναι " -"*δημόσια* (εκτός από βλέπε παρακάτω :ref:`tut-private`), και όλες οι συμμετέχουσες συναρτήσεις είναι " -"*εικονικές*. Όπως και στο Modula-3, δεν υπάρχουν συντομογραφίες για την αναφορά στα " -"μέλη του αντικειμένου από τις μεθόδους του: η μέθοδος δηλώνεται με " -"ρητό πρώτο όρισμα που αντιπροσωπεύει το αντικείμενο, το οποίο παρέχεται " -"έμμεσα από την κλήση. Όπως και στο Smalltalk, οι ίδιες οι κλάσεις είναι αντικείμενα." -"Αυτό παρέχει σημασιολογία για εισαγωγή και μετονομασία. Σε αντίθεση με τις γλώσσες C++ και " -"Modula-3, οι built-in τύποι μπορούν να χρησιμοποιηθούν ως βασικές κλάσεις για επέκταση από τον " -"χρήστη. Επίσης, όπως στην C++, οι περισσότεροι built-in τελεστές με ειδική σύνταξη " -"(αριθμητικοί τελεστές, εγγραφή κ.λπ.) μπορούν να επαναπροσδιοριστούν για τα στιγμιότυπα " -"κλάσης." +"Στην ορολογία της C++, συνήθως τα μέλη της κλάσης (συμπεριλαμβανομένων των " +"μελών δεδομένων) είναι *δημόσια* (εκτός από βλέπε παρακάτω :ref:`tut-" +"private`), και όλες οι συμμετέχουσες συναρτήσεις είναι *εικονικές*. Όπως και " +"στο Modula-3, δεν υπάρχουν συντομογραφίες για την αναφορά στα μέλη του " +"αντικειμένου από τις μεθόδους του: η μέθοδος δηλώνεται με ρητό πρώτο όρισμα " +"που αντιπροσωπεύει το αντικείμενο, το οποίο παρέχεται έμμεσα από την κλήση. " +"Όπως και στο Smalltalk, οι ίδιες οι κλάσεις είναι αντικείμενα.Αυτό παρέχει " +"σημασιολογία για εισαγωγή και μετονομασία. Σε αντίθεση με τις γλώσσες C++ " +"και Modula-3, οι built-in τύποι μπορούν να χρησιμοποιηθούν ως βασικές " +"κλάσεις για επέκταση από τον χρήστη. Επίσης, όπως στην C++, οι περισσότεροι " +"built-in τελεστές με ειδική σύνταξη (αριθμητικοί τελεστές, εγγραφή κ.λπ.) " +"μπορούν να επαναπροσδιοριστούν για τα στιγμιότυπα κλάσης." #: tutorial/classes.rst:34 msgid "" @@ -91,10 +96,11 @@ msgid "" "since its object-oriented semantics are closer to those of Python than C++, " "but I expect that few readers have heard of it.)" msgstr "" -"(Ελλείψει καθολικής αποδεκτής ορολογίας για να μιλήσω για τις κλάσεις, θα κάνω " -"περιστασιακή χρήση όρων από τη Smalltalk και τη C++. Θα χρησιμοποιούσα όρους από τη Modula-3, " -"καθώς η αντικειμενοστραφής σημασιολογία του είναι πιο κοντά σε αυτήν της Python από ότι της C++, " -"Αλλά πιστεύω ότι λίγοι αναγνώστες το έχουν ακούσει.) " +"(Ελλείψει καθολικής αποδεκτής ορολογίας για να μιλήσω για τις κλάσεις, θα " +"κάνω περιστασιακή χρήση όρων από τη Smalltalk και τη C++. Θα χρησιμοποιούσα " +"όρους από τη Modula-3, καθώς η αντικειμενοστραφής σημασιολογία του είναι " +"πιο κοντά σε αυτήν της Python από ότι της C++, Αλλά πιστεύω ότι λίγοι " +"αναγνώστες το έχουν ακούσει.) " #: tutorial/classes.rst:43 msgid "A Word About Names and Objects" @@ -115,18 +121,20 @@ msgid "" "the caller will see the change --- this eliminates the need for two " "different argument passing mechanisms as in Pascal." msgstr "" -"Τα αντικείμενα έχουν μοναδικότητα και πολλά ονόματα (σε πολλαπλά πεδία) μπορούν να " -"συνδεθούν στο ίδιο αντικείμενο. Αυτό είναι γνωστό ως ψευδώνυμο σε άλλες γλώσσες." -"Αυτό συνήθως δεν εκτιμάται με μια πρώτη ματιά στην Python και μπορεί να " -"αγνοείται με ασφάλεια όταν ασχολείται με αμετάβλητους βασικούς τύπους (αριθμοί, συμβολοσειρές, " -"πλειάδες (tuples)). Ωστόσο, το ψευδώνυμο έχει μια πιθανώς εκπληκτική επίδραση στη " -"σημασιολογία του κώδικα της Python που περιλαμβάνει ευμετάβλητα αντικείμενα όπως λίστες, " -"λεξικά, και τους περισσότερους άλλους τύπους. Αυτό χρησιμοποιείται συνήθως προς όφελος του " -"προγράμματος, δεδομένου ότι τα ψευδώνυμα συμπεριφέρονται σαν δείκτες από ορισμένες απόψεις. " -"Για παράδειγμα, η μετάδοση ενός αντικειμένου είναι ανέξοδη αφού μόνο ένας δείκτης περνά από την " -"υλοποίηση, και αν μια συνάρτηση τροποποιεί ένα αντικείμενο που έχει περάσει ως όρισμα, " -"ο καλών θα δει την αλλαγή --- αυτό εξαλείφει την ανάγκη για δύο " -"διαφορετικούς μηχανισμούς μετάδοσης ορισμάτων όπως στην Pascal." +"Τα αντικείμενα έχουν μοναδικότητα και πολλά ονόματα (σε πολλαπλά πεδία) " +"μπορούν να συνδεθούν στο ίδιο αντικείμενο. Αυτό είναι γνωστό ως ψευδώνυμο σε " +"άλλες γλώσσες.Αυτό συνήθως δεν εκτιμάται με μια πρώτη ματιά στην Python και " +"μπορεί να αγνοείται με ασφάλεια όταν ασχολείται με αμετάβλητους βασικούς " +"τύπους (αριθμοί, συμβολοσειρές, πλειάδες (tuples)). Ωστόσο, το ψευδώνυμο " +"έχει μια πιθανώς εκπληκτική επίδραση στη σημασιολογία του κώδικα της Python " +"που περιλαμβάνει ευμετάβλητα αντικείμενα όπως λίστες, λεξικά, και τους " +"περισσότερους άλλους τύπους. Αυτό χρησιμοποιείται συνήθως προς όφελος του " +"προγράμματος, δεδομένου ότι τα ψευδώνυμα συμπεριφέρονται σαν δείκτες από " +"ορισμένες απόψεις. Για παράδειγμα, η μετάδοση ενός αντικειμένου είναι " +"ανέξοδη αφού μόνο ένας δείκτης περνά από την υλοποίηση, και αν μια συνάρτηση " +"τροποποιεί ένα αντικείμενο που έχει περάσει ως όρισμα, ο καλών θα δει την " +"αλλαγή --- αυτό εξαλείφει την ανάγκη για δύο διαφορετικούς μηχανισμούς " +"μετάδοσης ορισμάτων όπως στην Pascal." #: tutorial/classes.rst:61 msgid "Python Scopes and Namespaces" @@ -141,10 +149,11 @@ msgid "" "useful for any advanced Python programmer." msgstr "" "Πριν από την εισαγωγή των κλάσεων, πρέπει πρώτα να σας πω κάτι για τους " -"κανόνες εμβέλειας της Python. Οι ορισμοί των κλάσεων παίζουν μερικά ξεκάθαρα κόλπα με τα " -"πεδία ονομάτων και πρέπει να γνωρίζετε πώς λειτουργούν πλήρως τα πεδία ονομάτων και η εμβέλεια " -"για να κατανοήσετε πλήρως τι συμβαίνει. Παρεμπιπτόντως, η γνώση για αυτό το θέμα είναι " -"χρήσιμη για κάθε προχωρημένο προγραμματιστή της Python." +"κανόνες εμβέλειας της Python. Οι ορισμοί των κλάσεων παίζουν μερικά ξεκάθαρα " +"κόλπα με τα πεδία ονομάτων και πρέπει να γνωρίζετε πώς λειτουργούν πλήρως τα " +"πεδία ονομάτων και η εμβέλεια για να κατανοήσετε πλήρως τι συμβαίνει. " +"Παρεμπιπτόντως, η γνώση για αυτό το θέμα είναι χρήσιμη για κάθε προχωρημένο " +"προγραμματιστή της Python." #: tutorial/classes.rst:69 msgid "Let's begin with some definitions." @@ -164,17 +173,20 @@ msgid "" "may both define a function ``maximize`` without confusion --- users of the " "modules must prefix it with the module name." msgstr "" -"Ένας *πεδίο ονομάτων (namespace)* είναι μια αντιστοίχιση από ονόματα σε αντικείμενα. Τα περισσότερα πεδία ονομάτων υλοποιούνται " -"επί του παρόντος ως λεξικά Python, αλλά αυτό συνήθως δεν γίνεται " -"αντιληπτό με κανέναν τρόπο (εκτός από την απόδοση) και μπορεί να αλλάξει στο " -"μέλλον. Παραδείγματα πεδίων ονομάτων είναι: το σύνολο των ενσωματωμένων ονομάτων (που περιέχει " -"συναρτήσεις όπως :func:`abs` και ενσωματωμένα ονόματα εξαιρέσεων)∙ τα καθολικά " -"ονόματα σε ένα module και τα τοπικά ονόματα σε μια επίκληση συνάρτησης. Κατά μία έννοια " -"το σύνολο των χαρακτηριστικών ενός αντικειμένου σχηματίζει επίσης ένα πεδίο ονομάτων. Το σημαντικό " -"πράγμα που πρέπει να γνωρίζετε για τα πεδία ονομάτων είναι ότι δεν υπάρχει καμία απολύτως σχέση " -"μεταξύ ονομάτων σε διαφορετικά πεδία ονομάτων, για παράδειγμα, δύο διαφορετικά modules " -"μπορεί και τα δύο να ορίσουν μια συνάρτηση ``maximize`` χωρίς σύγχυση --- χρήστες των " -"modules πρέπει να την προσθέσουν με το όνομα του module." +"Ένας *πεδίο ονομάτων (namespace)* είναι μια αντιστοίχιση από ονόματα σε " +"αντικείμενα. Τα περισσότερα πεδία ονομάτων υλοποιούνται επί του παρόντος ως " +"λεξικά Python, αλλά αυτό συνήθως δεν γίνεται αντιληπτό με κανέναν τρόπο " +"(εκτός από την απόδοση) και μπορεί να αλλάξει στο μέλλον. Παραδείγματα " +"πεδίων ονομάτων είναι: το σύνολο των ενσωματωμένων ονομάτων (που περιέχει " +"συναρτήσεις όπως :func:`abs` και ενσωματωμένα ονόματα εξαιρέσεων)∙ τα " +"καθολικά ονόματα σε ένα module και τα τοπικά ονόματα σε μια επίκληση " +"συνάρτησης. Κατά μία έννοια το σύνολο των χαρακτηριστικών ενός αντικειμένου " +"σχηματίζει επίσης ένα πεδίο ονομάτων. Το σημαντικό πράγμα που πρέπει να " +"γνωρίζετε για τα πεδία ονομάτων είναι ότι δεν υπάρχει καμία απολύτως σχέση " +"μεταξύ ονομάτων σε διαφορετικά πεδία ονομάτων, για παράδειγμα, δύο " +"διαφορετικά modules μπορεί και τα δύο να ορίσουν μια συνάρτηση ``maximize`` " +"χωρίς σύγχυση --- χρήστες των modules πρέπει να την προσθέσουν με το όνομα " +"του module." #: tutorial/classes.rst:82 msgid "" @@ -186,13 +198,15 @@ msgid "" "happens to be a straightforward mapping between the module's attributes and " "the global names defined in the module: they share the same namespace! [#]_" msgstr "" -"Παρεμπιπτόντως, χρησιμοποιώ τη λέξη *attribute* για οποιοδήποτε όνομα που ακολουθεί μια τελεία --- για " -"παράδειγμα, στην έκφραση ``z.real``, το ``real`` είναι ένα attribute του " -"αντικειμένου ``z``. Αυστηρά μιλώντας, οι αναφορές σε ονόματα των modules είναι " -"αναφορές σε attributes: στην έκφραση ``modname.funcname``, το ``modname`` είναι " -"ένα module αντικείμενο και το ``funcname`` είναι ένα attribute του αντικειμένου. Σε αυτήν την περίπτωση συμβαίνει να " -"υπάρχει μια απλή αντιστοίχιση μεταξύ των attributes των modules και " -"των καθολικών ονομάτων που ορίζονται στο module: μοιράζονται τον ίδιο χώρο ονομάτων! [#]_" +"Παρεμπιπτόντως, χρησιμοποιώ τη λέξη *attribute* για οποιοδήποτε όνομα που " +"ακολουθεί μια τελεία --- για παράδειγμα, στην έκφραση ``z.real``, το " +"``real`` είναι ένα attribute του αντικειμένου ``z``. Αυστηρά μιλώντας, οι " +"αναφορές σε ονόματα των modules είναι αναφορές σε attributes: στην έκφραση " +"``modname.funcname``, το ``modname`` είναι ένα module αντικείμενο και το " +"``funcname`` είναι ένα attribute του αντικειμένου. Σε αυτήν την περίπτωση " +"συμβαίνει να υπάρχει μια απλή αντιστοίχιση μεταξύ των attributes των modules " +"και των καθολικών ονομάτων που ορίζονται στο module: μοιράζονται τον ίδιο " +"χώρο ονομάτων! [#]_" #: tutorial/classes.rst:90 msgid "" @@ -203,12 +217,12 @@ msgid "" "remove the attribute :attr:`!the_answer` from the object named by " "``modname``." msgstr "" -"Τα attributes μπορεί να είναι μόνο για ανάγνωση ή εγγράψιμα. Στην τελευταία περίπτωση, είναι δυνατή η ανάθεση " -"attributes. Τα attributes των modules είναι εγγράψιμα: μπορείτε να γράψετε " -"``modname.the_answer = 42``. Τα εγγράψιμα attributes μπορούν επίσης να διαγραφούν με " -"την δήλωση :keyword:`del`. Για παράδειγμα, ``del modname.the_answer`` θα " -"αφαιρέσει το attribute :attr:`!the_answer` από το αντικείμενο που ονομάστηκε από το " -"``modname``." +"Τα attributes μπορεί να είναι μόνο για ανάγνωση ή εγγράψιμα. Στην τελευταία " +"περίπτωση, είναι δυνατή η ανάθεση attributes. Τα attributes των modules " +"είναι εγγράψιμα: μπορείτε να γράψετε ``modname.the_answer = 42``. Τα " +"εγγράψιμα attributes μπορούν επίσης να διαγραφούν με την δήλωση :keyword:" +"`del`. Για παράδειγμα, ``del modname.the_answer`` θα αφαιρέσει το attribute :" +"attr:`!the_answer` από το αντικείμενο που ονομάστηκε από το ``modname``." #: tutorial/classes.rst:96 msgid "" @@ -222,15 +236,17 @@ msgid "" "`__main__`, so they have their own global namespace. (The built-in names " "actually also live in a module; this is called :mod:`builtins`.)" msgstr "" -"Οι χώροι ονομάτων δημιουργούνται σε διαφορετικές στιγμές και έχουν διαφορετική διάρκεια ζωής." -"Ο χώρος ονομάτων που περιέχει τα built-in ονόματα δημιουργείται κατά την εκκίνηση του διερμηνέα " -"της Python και δεν διαγράφεται ποτέ. Ο καθολικός χώρος ονομάτων για ένα " -"module δημιουργείται όταν διαβάζεται ο ορισμός του module. Κανονικά, οι χώροι ονομάτων " -"των modules διαρκούν επίσης μέχρι να τερματιστεί ο διερμηνέας. Οι δηλώσεις που εκτελούνται " -"από την επίκληση ανώτατου επιπέδου του διερμηνέα, είτε διαβάζονται από ένα script " -"είτε διαδραστικά, θεωρούνται μέρος ενός module που ονομάζεται :mod:" -"`__main__`, επομένως έχουν τον δικό τους καθολικό χώρο ονομάτων. (Τα ενσωματωμένα ονόματα " -"στην πραγματικότητα υπάρχουν επίσης σε ένα module,αυτό ονομάζεται :mod:`builtins`.)" +"Οι χώροι ονομάτων δημιουργούνται σε διαφορετικές στιγμές και έχουν " +"διαφορετική διάρκεια ζωής.Ο χώρος ονομάτων που περιέχει τα built-in ονόματα " +"δημιουργείται κατά την εκκίνηση του διερμηνέα της Python και δεν διαγράφεται " +"ποτέ. Ο καθολικός χώρος ονομάτων για ένα module δημιουργείται όταν " +"διαβάζεται ο ορισμός του module. Κανονικά, οι χώροι ονομάτων των modules " +"διαρκούν επίσης μέχρι να τερματιστεί ο διερμηνέας. Οι δηλώσεις που " +"εκτελούνται από την επίκληση ανώτατου επιπέδου του διερμηνέα, είτε " +"διαβάζονται από ένα script είτε διαδραστικά, θεωρούνται μέρος ενός module " +"που ονομάζεται :mod:`__main__`, επομένως έχουν τον δικό τους καθολικό χώρο " +"ονομάτων. (Τα ενσωματωμένα ονόματα στην πραγματικότητα υπάρχουν επίσης σε " +"ένα module,αυτό ονομάζεται :mod:`builtins`.)" #: tutorial/classes.rst:106 msgid "" @@ -240,11 +256,12 @@ msgid "" "describe what actually happens.) Of course, recursive invocations each have " "their own local namespace." msgstr "" -"Ο τοπικός χώρος ονομάτων για μια συνάρτηση δημιουργείται όταν καλείται η συνάρτηση, " -"και διαγράφεται όταν η συνάρτηση επιστρέφει ή δημιουργεί μια εξαίρεση που δεν " -"αντιμετωπίζεται στην συνάρτηση. (Στην πραγματικότητα, η λήθη θα ήταν καλύτερος τρόπος για να " -"περιγράψουμε τι πραγματικά συμβαίνει.) Φυσικά, οι επαναλαμβανόμενες επικλήσεις έχουν " -"το δικό τους τοπικό χώρο ονομάτων." +"Ο τοπικός χώρος ονομάτων για μια συνάρτηση δημιουργείται όταν καλείται η " +"συνάρτηση, και διαγράφεται όταν η συνάρτηση επιστρέφει ή δημιουργεί μια " +"εξαίρεση που δεν αντιμετωπίζεται στην συνάρτηση. (Στην πραγματικότητα, η " +"λήθη θα ήταν καλύτερος τρόπος για να περιγράψουμε τι πραγματικά συμβαίνει.) " +"Φυσικά, οι επαναλαμβανόμενες επικλήσεις έχουν το δικό τους τοπικό χώρο " +"ονομάτων." #: tutorial/classes.rst:112 msgid "" @@ -252,9 +269,10 @@ msgid "" "directly accessible. \"Directly accessible\" here means that an unqualified " "reference to a name attempts to find the name in the namespace." msgstr "" -"Η εμβέλεια είναι μια περιοχή κειμένου ενός προγράμματος Python όπου ένας χώρος ονομάτων είναι " -"άμεσα προσβάσιμος. Το \`Άμεση πρόσβαση\` εδώ σημαίνει ότι μια ανεπιφύλακτη " -"αναφορά σε ένα όνομα προσπαθεί να βρει το όνομα στον χώρο ονομάτων." +"Η εμβέλεια είναι μια περιοχή κειμένου ενός προγράμματος Python όπου ένας " +"χώρος ονομάτων είναι άμεσα προσβάσιμος. Το \"Άμεση πρόσβαση\" εδώ σημαίνει " +"ότι μια ανεπιφύλακτη αναφορά σε ένα όνομα προσπαθεί να βρει το όνομα στον " +"χώρο ονομάτων." #: tutorial/classes.rst:116 msgid "" @@ -262,31 +280,37 @@ msgid "" "time during execution, there are 3 or 4 nested scopes whose namespaces are " "directly accessible:" msgstr "" -"Παρόλο που τα πεδία προσδιορίζονται στατικά, χρησιμοποιούνται δυναμικά. Σε οποιοδήποτε " -"χρόνο κατά την διάρκεια της εκτέλεσης, υπάρχουν 3 ή 4 ένθετα πεδία των οποίων οι χώροι ονομάτων είναι " -"άμεσα προσβάσιμοι " +"Παρόλο που τα πεδία προσδιορίζονται στατικά, χρησιμοποιούνται δυναμικά. Σε " +"οποιοδήποτε χρόνο κατά την διάρκεια της εκτέλεσης, υπάρχουν 3 ή 4 ένθετα " +"πεδία των οποίων οι χώροι ονομάτων είναι άμεσα προσβάσιμοι " #: tutorial/classes.rst:120 msgid "the innermost scope, which is searched first, contains the local names" -msgstr "η ενδότερη εμβέλεια, η οποία αναζητείται πρώτα, περιέχει τα τοπικά ονόματα" +msgstr "" +"η ενδότερη εμβέλεια, η οποία αναζητείται πρώτα, περιέχει τα τοπικά ονόματα" #: tutorial/classes.rst:121 msgid "" "the scopes of any enclosing functions, which are searched starting with the " "nearest enclosing scope, contain non-local, but also non-global names" msgstr "" -"η εμβέλεια οποιωνδήποτε εσωκλειόμενων συναρτήσεων, τα οποία αναζητούνται ξεκινώντας από την " -"πλησιέστερη εσωκλειόμενη εμβέλεια, περιέχει μη τοπικά, αλλά και μη καθολικά ονόματα" +"η εμβέλεια οποιωνδήποτε εσωκλειόμενων συναρτήσεων, τα οποία αναζητούνται " +"ξεκινώντας από την πλησιέστερη εσωκλειόμενη εμβέλεια, περιέχει μη τοπικά, " +"αλλά και μη καθολικά ονόματα" #: tutorial/classes.rst:123 msgid "the next-to-last scope contains the current module's global names" -msgstr "η επόμενη προς την τελευταία εμβέλεια περιέχει τα τρέχοντα καθολικά ονόματα του module " +msgstr "" +"η επόμενη προς την τελευταία εμβέλεια περιέχει τα τρέχοντα καθολικά ονόματα " +"του module " #: tutorial/classes.rst:124 msgid "" "the outermost scope (searched last) is the namespace containing built-in " "names" -msgstr "η πιο απομακρυσμένη εμβέλεια (που έγινε τελευταία αναζήτηση) είναι ο χώρος ονομάτων που περιέχει built-in ονόματα" +msgstr "" +"η πιο απομακρυσμένη εμβέλεια (που έγινε τελευταία αναζήτηση) είναι ο χώρος " +"ονομάτων που περιέχει built-in ονόματα" #: tutorial/classes.rst:126 msgid "" @@ -298,13 +322,14 @@ msgid "" "*new* local variable in the innermost scope, leaving the identically named " "outer variable unchanged)." msgstr "" -"Εάν ένα όνομα έχει δηλωθεί ως καθολικό, τότε όλες οι αναφορές και οι εκχωρήσεις πηγαίνουν " -"απευθείας στο επόμενο προς το τελευταίο πεδίο που περιέχει τα καθολικά ονόματα του module. Για την " -"επανασύνδεση μεταβλητών που βρίσκονται εκτός της ενδότερης εμβέλειας ,μπορεί να χρησιμοποιηθεί η δήλωση του :keyword:" -"`nonlocal` . Εάν δεν δηλωθούν ως μη τοπικές, αυτές οι μεταβλητές " -"είναι μόνο για ανάγνωση (μια προσπάθεια εγγραφής σε μια τέτοια μεταβλητή θα δημιουργήσει απλώς μια " -"*νέα* τοπική μεταβλητή στην ενδότερη εμβέλεια, αφήνοντας αμετάβλητη την " -"εξωτερική μεταβλητή με το ίδιο όνομα )." +"Εάν ένα όνομα έχει δηλωθεί ως καθολικό, τότε όλες οι αναφορές και οι " +"εκχωρήσεις πηγαίνουν απευθείας στο επόμενο προς το τελευταίο πεδίο που " +"περιέχει τα καθολικά ονόματα του module. Για την επανασύνδεση μεταβλητών που " +"βρίσκονται εκτός της ενδότερης εμβέλειας ,μπορεί να χρησιμοποιηθεί η δήλωση " +"του :keyword:`nonlocal` . Εάν δεν δηλωθούν ως μη τοπικές, αυτές οι " +"μεταβλητές είναι μόνο για ανάγνωση (μια προσπάθεια εγγραφής σε μια τέτοια " +"μεταβλητή θα δημιουργήσει απλώς μια *νέα* τοπική μεταβλητή στην ενδότερη " +"εμβέλεια, αφήνοντας αμετάβλητη την εξωτερική μεταβλητή με το ίδιο όνομα )." #: tutorial/classes.rst:133 msgid "" @@ -314,9 +339,9 @@ msgid "" "place yet another namespace in the local scope." msgstr "" "Συνήθως, η τοπική εμβέλεια παραπέμπει στα τοπικά ονόματα της (κείμενης) " -"τρέχουσας συνάρτησης. Εκτός συναρτήσεων, η τοπική εμβέλεια αναφέρεται στον ίδιο " -"χώρο ονομάτων με την καθολική εμβέλεια: τον χώρο ονομάτων του module.Οι ορισμοί κλάσεων " -"τοποθετούν έναν ακόμη χώρο ονομάτων στην τοπική εμβέλεια. " +"τρέχουσας συνάρτησης. Εκτός συναρτήσεων, η τοπική εμβέλεια αναφέρεται στον " +"ίδιο χώρο ονομάτων με την καθολική εμβέλεια: τον χώρο ονομάτων του module.Οι " +"ορισμοί κλάσεων τοποθετούν έναν ακόμη χώρο ονομάτων στην τοπική εμβέλεια. " #: tutorial/classes.rst:138 msgid "" @@ -328,13 +353,14 @@ msgid "" "at \"compile\" time, so don't rely on dynamic name resolution! (In fact, " "local variables are already determined statically.)" msgstr "" -"Είναι σημαντικό να συνειδητοποιήσουμε ότι οι εμβέλειες καθορίζονται με κείμενο: η καθολική " -"εμβέλεια μιας συνάρτησης που ορίζεται σε ένα module είναι ο χώρος ονομάτων αυτού του module " -"ανεξάρτητα από το πού ή με ποιο ψευδώνυμο καλείται η συνάρτηση. Από την άλλη " -"πλευρά, η πραγματική αναζήτηση ονομάτων γίνεται δυναμικά, κατά το χρόνο εκτέλεσης --- " -"ωστόσο, ο ορισμός της γλώσσας εξελίσσεται προς τη στατική ανάλυση ονομάτων, " -"την ώρα της \`μεταγλώττισης\`, επομένως μην βασίζεστε σε δυναμική ανάλυση ονόματος! (Στην πραγματικότητα, " -"οι τοπικές μεταβλητές έχουν ήδη καθοριστεί στατικά.) " +"Είναι σημαντικό να συνειδητοποιήσουμε ότι οι εμβέλειες καθορίζονται με " +"κείμενο: η καθολική εμβέλεια μιας συνάρτησης που ορίζεται σε ένα module " +"είναι ο χώρος ονομάτων αυτού του module ανεξάρτητα από το πού ή με ποιο " +"ψευδώνυμο καλείται η συνάρτηση. Από την άλλη πλευρά, η πραγματική αναζήτηση " +"ονομάτων γίνεται δυναμικά, κατά το χρόνο εκτέλεσης --- ωστόσο, ο ορισμός της " +"γλώσσας εξελίσσεται προς τη στατική ανάλυση ονομάτων, την ώρα της " +"\"μεταγλώττισης\", επομένως μην βασίζεστε σε δυναμική ανάλυση ονόματος! " +"(Στην πραγματικότητα, οι τοπικές μεταβλητές έχουν ήδη καθοριστεί στατικά.) " #: tutorial/classes.rst:146 msgid "" @@ -347,14 +373,16 @@ msgid "" "particular, :keyword:`import` statements and function definitions bind the " "module or function name in the local scope." msgstr "" -"Μια ιδιαίτερη ιδιορρυθμία της Python είναι ότι -- αν οι δηλώσεις :keyword:`global` ή :keyword:" -"`nonlocal` δεν είναι σε ισχύ -- οι εκχωρήσεις στα ονόματα πηγαίνουν πάντα στην " -"ενδότερη εμβέλεια. Οι εκχωρήσεις δεν αντιγράφουν δεδομένα --- απλώς δεσμεύουν ονόματα σε " -"αντικείμενα. Το ίδιο ισχύει και για τις διαγραφές: η δήλωση `del x` αφαιρεί " -"την σύνδεση του ``x`` από τον χώρο ονομάτων που αναφέρεται από την τοπική εμβέλεια. Στην " -"πραγματικότητα, όλες οι λειτουργίες που εισάγουν νέα ονόματα χρησιμοποιούν την τοπική εμβέλεια: συγκεκριμένα " -"οι δηλώσεις, :keyword:`import` και οι ορισμοί συναρτήσεων δεσμεύουν το " -"όνομα του module ή της συνάρτησης στην τοπική εμβέλεια." +"Μια ιδιαίτερη ιδιορρυθμία της Python είναι ότι -- αν οι δηλώσεις :keyword:" +"`global` ή :keyword:`nonlocal` δεν είναι σε ισχύ -- οι εκχωρήσεις στα " +"ονόματα πηγαίνουν πάντα στην ενδότερη εμβέλεια. Οι εκχωρήσεις δεν " +"αντιγράφουν δεδομένα --- απλώς δεσμεύουν ονόματα σε αντικείμενα. Το ίδιο " +"ισχύει και για τις διαγραφές: η δήλωση `del x` αφαιρεί την σύνδεση του ``x`` " +"από τον χώρο ονομάτων που αναφέρεται από την τοπική εμβέλεια. Στην " +"πραγματικότητα, όλες οι λειτουργίες που εισάγουν νέα ονόματα χρησιμοποιούν " +"την τοπική εμβέλεια: συγκεκριμένα οι δηλώσεις, :keyword:`import` και οι " +"ορισμοί συναρτήσεων δεσμεύουν το όνομα του module ή της συνάρτησης στην " +"τοπική εμβέλεια." #: tutorial/classes.rst:154 msgid "" @@ -363,10 +391,10 @@ msgid "" "`nonlocal` statement indicates that particular variables live in an " "enclosing scope and should be rebound there." msgstr "" -"Η δήλωση :keyword:`global` μπορεί να χρησιμοποιηθεί για να υποδείξει ότι συγκεκριμένες " -"μεταβλητές ζουν στην καθολική εμβέλεια και θα πρέπει να ανακάμψουν εκεί. Η δήλωση :keyword:" -"`nonlocal` υποδηλώνει ότι συγκεκριμένες μεταβλητές ζουν σε μια " -"εσώκλειστη εμβέλεια και θα πρέπει να ανακάμψουν εκεί." +"Η δήλωση :keyword:`global` μπορεί να χρησιμοποιηθεί για να υποδείξει ότι " +"συγκεκριμένες μεταβλητές ζουν στην καθολική εμβέλεια και θα πρέπει να " +"ανακάμψουν εκεί. Η δήλωση :keyword:`nonlocal` υποδηλώνει ότι συγκεκριμένες " +"μεταβλητές ζουν σε μια εσώκλειστη εμβέλεια και θα πρέπει να ανακάμψουν εκεί." #: tutorial/classes.rst:162 msgid "Scopes and Namespaces Example" @@ -378,9 +406,9 @@ msgid "" "namespaces, and how :keyword:`global` and :keyword:`nonlocal` affect " "variable binding::" msgstr "" -"Αυτό είναι ένα παράδειγμα που δείχνει τον τρόπο αναφοράς στα διαφορετικά πεδία και " -"χώρους ονομάτων και πώς τα :keyword:`global` και :keyword:`nonlocal` επηρεάζουν τα " -"variable binding::" +"Αυτό είναι ένα παράδειγμα που δείχνει τον τρόπο αναφοράς στα διαφορετικά " +"πεδία και χώρους ονομάτων και πώς τα :keyword:`global` και :keyword:" +"`nonlocal` επηρεάζουν τα variable binding::" #: tutorial/classes.rst:191 msgid "The output of the example code is:" @@ -395,16 +423,16 @@ msgid "" msgstr "" "Σημειώστε πώς η εκχώρηση *τοπική* (η οποία είναι προεπιλεγμένη) δεν άλλαξε " "την δέσμευση *scope_test*\\'s του *spam*. Η εκχώρηση :keyword:`nonlocal` " -"άλλαξε την δέσμευση του *scope_test*\\'s του *spam* και η εκχώρηση του :keyword:`global` " -"άλλαξε τη δέσμευση σε επίπεδο module." +"άλλαξε την δέσμευση του *scope_test*\\'s του *spam* και η εκχώρηση του :" +"keyword:`global` άλλαξε τη δέσμευση σε επίπεδο module." #: tutorial/classes.rst:205 msgid "" "You can also see that there was no previous binding for *spam* before the :" "keyword:`global` assignment." msgstr "" -"Μπορείτε επίσης να δείτε ότι δεν υπήρχε προηγούμενη δέσμευση για *spam* πριν από την εκχώρηση :" -"keyword:`global`" +"Μπορείτε επίσης να δείτε ότι δεν υπήρχε προηγούμενη δέσμευση για *spam* πριν " +"από την εκχώρηση :keyword:`global`" #: tutorial/classes.rst:212 msgid "A First Look at Classes" @@ -415,7 +443,8 @@ msgid "" "Classes introduce a little bit of new syntax, three new object types, and " "some new semantics." msgstr "" -"Οι Κλάσεις εισάγουν λίγη νέα σύνταξη, τρεις νέους τύπους αντικειμένων και κάποια νέα σημασιολογία." +"Οι Κλάσεις εισάγουν λίγη νέα σύνταξη, τρεις νέους τύπους αντικειμένων και " +"κάποια νέα σημασιολογία." #: tutorial/classes.rst:221 msgid "Class Definition Syntax" @@ -432,10 +461,10 @@ msgid "" "a class definition in a branch of an :keyword:`if` statement, or inside a " "function.)" msgstr "" -"Ορισμοί κλάσεων, όπως ορισμοί συναρτήσεων (:keyword:`def` δηλώσεις) " -"πρέπει να εκτελεστούν προτού έχουν οποιοδήποτε αποτέλεσμα. (Θα μπορούσατε να τοποθετήσετε " -"έναν ορισμό κλάσης σε έναν κλάδο μιας δήλωσης :keyword:`if` ή μέσα σε μια " -"συνάρτηση.)" +"Ορισμοί κλάσεων, όπως ορισμοί συναρτήσεων (:keyword:`def` δηλώσεις) πρέπει " +"να εκτελεστούν προτού έχουν οποιοδήποτε αποτέλεσμα. (Θα μπορούσατε να " +"τοποθετήσετε έναν ορισμό κλάσης σε έναν κλάδο μιας δήλωσης :keyword:`if` ή " +"μέσα σε μια συνάρτηση.)" #: tutorial/classes.rst:236 msgid "" @@ -445,11 +474,11 @@ msgid "" "normally have a peculiar form of argument list, dictated by the calling " "conventions for methods --- again, this is explained later." msgstr "" -"Στην πράξη, οι δηλώσεις μέσα σε έναν ορισμό κλάσης συνήθως θα είναι " -"ορισμοί συναρτήσεων, αλλά επιτρέπονται άλλες δηλώσεις και μερικές φορές χρήσιμες " -"--- θα επανέλθουμε σε αυτό αργότερα. Οι ορισμοί συναρτήσεων μέσα σε μια κλάση " -"συνήθως έχουν μια περίεργη μορφή λίστας ορισμάτων, που υπαγορεύεται από τις συμβάσεις " -"κλήσης για μεθόδους --- και πάλι, αυτό εξηγείται αργότερα." +"Στην πράξη, οι δηλώσεις μέσα σε έναν ορισμό κλάσης συνήθως θα είναι ορισμοί " +"συναρτήσεων, αλλά επιτρέπονται άλλες δηλώσεις και μερικές φορές χρήσιμες --- " +"θα επανέλθουμε σε αυτό αργότερα. Οι ορισμοί συναρτήσεων μέσα σε μια κλάση " +"συνήθως έχουν μια περίεργη μορφή λίστας ορισμάτων, που υπαγορεύεται από τις " +"συμβάσεις κλήσης για μεθόδους --- και πάλι, αυτό εξηγείται αργότερα." #: tutorial/classes.rst:242 msgid "" @@ -458,10 +487,10 @@ msgid "" "new namespace. In particular, function definitions bind the name of the new " "function here." msgstr "" -"Όταν εισάγεται ένας ορισμός κλάσης, δημιουργείται ένας νέος χώρος ονομάτων και χρησιμοποιείται ως " -"τοπική εμβέλεια --- επομένως, όλες οι εκχωρήσεις σε τοπικές μεταβλητές πηγαίνουν σε αυτόν " -"τον νέο χώρο ονομάτων. Συγκεκριμένα, οι ορισμοί συναρτήσεων δεσμεύουν το όνομα της νέας " -"συνάρτησης εδώ." +"Όταν εισάγεται ένας ορισμός κλάσης, δημιουργείται ένας νέος χώρος ονομάτων " +"και χρησιμοποιείται ως τοπική εμβέλεια --- επομένως, όλες οι εκχωρήσεις σε " +"τοπικές μεταβλητές πηγαίνουν σε αυτόν τον νέο χώρο ονομάτων. Συγκεκριμένα, " +"οι ορισμοί συναρτήσεων δεσμεύουν το όνομα της νέας συνάρτησης εδώ." #: tutorial/classes.rst:247 msgid "" @@ -473,13 +502,14 @@ msgid "" "here to the class name given in the class definition header (:class:`!" "ClassName` in the example)." msgstr "" -"Όταν ένας ορισμός κλάσης αφήνεται κανονικά (μέσω του τέλους),δημιουργείται ένα *αντικείμενο κλάσης*. " -"Αυτό είναι βασικά ένα περιτύλιγμα γύρω από τα περιεχόμενα του χώρου ονομάτων " -"που δημιουργήθηκε από τον ορισμό κλάσης. θα μάθουμε περισσότερα για τα αντικείμενα κλάσης στην " -"επόμενη ενότητα.Η αρχική τοπική εμβέλεια(αυτό που ίσχυε λίγο πριν από την " -"εισαγωγή του ορισμού της κλάσης) αποκαθίσταται και το αντικείμενο κλάσης δεσμεύεται εδώ " -"στο όνομα κλάσης που δίνεται στην κεφαλίδα ορισμού κλάσης (:class:`!" -"ClassName` στο παράδειγμα)." +"Όταν ένας ορισμός κλάσης αφήνεται κανονικά (μέσω του τέλους),δημιουργείται " +"ένα *αντικείμενο κλάσης*. Αυτό είναι βασικά ένα περιτύλιγμα γύρω από τα " +"περιεχόμενα του χώρου ονομάτων που δημιουργήθηκε από τον ορισμό κλάσης. θα " +"μάθουμε περισσότερα για τα αντικείμενα κλάσης στην επόμενη ενότητα.Η αρχική " +"τοπική εμβέλεια(αυτό που ίσχυε λίγο πριν από την εισαγωγή του ορισμού της " +"κλάσης) αποκαθίσταται και το αντικείμενο κλάσης δεσμεύεται εδώ στο όνομα " +"κλάσης που δίνεται στην κεφαλίδα ορισμού κλάσης (:class:`!ClassName` στο " +"παράδειγμα)." #: tutorial/classes.rst:259 msgid "Class Objects" @@ -490,7 +520,8 @@ msgid "" "Class objects support two kinds of operations: attribute references and " "instantiation." msgstr "" -"Τα αντικείμενα κλάσης υποστηρίζουν δύο είδη πράξεων: αναφορές χαρακτηριστικών και στιγμιότυπο." +"Τα αντικείμενα κλάσης υποστηρίζουν δύο είδη πράξεων: αναφορές " +"χαρακτηριστικών και στιγμιότυπο." #: tutorial/classes.rst:264 msgid "" @@ -499,10 +530,11 @@ msgid "" "that were in the class's namespace when the class object was created. So, " "if the class definition looked like this::" msgstr "" -"Οι *Αναφορές χαρακτηριστικών* χρησιμοποιούν την τυπική σύνταξη που χρησιμοποιείται για όλα τις αναφορές χαρακτηριστικών " -"στην Python: ``obj.name``. Τα έγκυρα ονόματα χαρακτηριστικών είναι όλα τα ονόματα " -"που βρίσκονταν στον χώρο ονομάτων της κλάσης όταν δημιουργήθηκε το αντικείμενο της κλάσης. Έτσι, " -"αν ο ορισμός της κλάσης έμοιαζε ως εξής::" +"Οι *Αναφορές χαρακτηριστικών* χρησιμοποιούν την τυπική σύνταξη που " +"χρησιμοποιείται για όλα τις αναφορές χαρακτηριστικών στην Python: ``obj." +"name``. Τα έγκυρα ονόματα χαρακτηριστικών είναι όλα τα ονόματα που " +"βρίσκονταν στον χώρο ονομάτων της κλάσης όταν δημιουργήθηκε το αντικείμενο " +"της κλάσης. Έτσι, αν ο ορισμός της κλάσης έμοιαζε ως εξής::" #: tutorial/classes.rst:276 msgid "" @@ -513,10 +545,11 @@ msgid "" "docstring belonging to the class: ``\"A simple example class\"``." msgstr "" "τότε τα `MyClass.i` και `MyClass.f` είναι έγκυρες αναφορές χαρακτηριστικών, " -"επιστρέφοντας έναν ακέραιο και ένα αντικείμενο συνάρτησης, αντίστοιχα.Τα attributes κλάσης " -"μπορούν επίσης να εκχωρηθούν, ώστε να μπορείτε να αλλάξετε την τιμή του `MyClass.i` " -"ανά ανάθεση. :attr:`!__doc__` είναι επίσης ένα έγκυρο χαρακτηριστικό, επιστρέφοντας το " -"docstring που ανήκει στην κλάση: ``\'Ένα απλό παράδειγμα κλάσης\'``." +"επιστρέφοντας έναν ακέραιο και ένα αντικείμενο συνάρτησης, αντίστοιχα.Τα " +"attributes κλάσης μπορούν επίσης να εκχωρηθούν, ώστε να μπορείτε να αλλάξετε " +"την τιμή του `MyClass.i` ανά ανάθεση. :attr:`!__doc__` είναι επίσης ένα " +"έγκυρο χαρακτηριστικό, επιστρέφοντας το docstring που ανήκει στην κλάση: " +"``\"Ένα απλό παράδειγμα κλάσης\"``." #: tutorial/classes.rst:282 msgid "" @@ -524,17 +557,18 @@ msgid "" "object is a parameterless function that returns a new instance of the class. " "For example (assuming the above class)::" msgstr "" -"Η κλάση *στιγμιότυπο* χρησιμοποιεί σημειογραφία συνάρτησης. Απλώς προσποιηθείτε ότι το " -"αντικείμενο της κλάσης είναι μια συνάρτηση χωρίς παραμέτρους που επιστρέφει ένα νέο στιγμιότυπο της κλάσης." -"Για παράδειγμα (υποθέτοντας την παραπάνω κλάση)::" +"Η κλάση *στιγμιότυπο* χρησιμοποιεί σημειογραφία συνάρτησης. Απλώς " +"προσποιηθείτε ότι το αντικείμενο της κλάσης είναι μια συνάρτηση χωρίς " +"παραμέτρους που επιστρέφει ένα νέο στιγμιότυπο της κλάσης.Για παράδειγμα " +"(υποθέτοντας την παραπάνω κλάση)::" #: tutorial/classes.rst:288 msgid "" "creates a new *instance* of the class and assigns this object to the local " "variable ``x``." msgstr "" -"δημιουργεί ένα νέο *στιγμιότυπο* της κλάσης και εκχωρεί αυτό το αντικείμενο στην τοπική " -"μεταβλητή ``x``." +"δημιουργεί ένα νέο *στιγμιότυπο* της κλάσης και εκχωρεί αυτό το αντικείμενο " +"στην τοπική μεταβλητή ``x``." #: tutorial/classes.rst:291 msgid "" @@ -543,10 +577,11 @@ msgid "" "specific initial state. Therefore a class may define a special method named :" "meth:`~object.__init__`, like this::" msgstr "" -"Η λειτουργία του στιγμιότυπου (\"calling\" ένα αντικείμενο κλάσης) δημιουργεί ένα κενό " -"αντικείμενο. Σε πολλές κλάσεις αρέσει να δημιουργούν αντικείμενα με στιγμιότυπα προσαρμοσμένα σε μια " -"συγκεκριμένη αρχική κατάσταση. Επομένως μια κλάση μπορεί να ορίσει μια ειδική μέθοδο με το όνομα :" -"meth:`~object.__init__`, όπως αυτό::" +"Η λειτουργία του στιγμιότυπου (\"calling\" ένα αντικείμενο κλάσης) " +"δημιουργεί ένα κενό αντικείμενο. Σε πολλές κλάσεις αρέσει να δημιουργούν " +"αντικείμενα με στιγμιότυπα προσαρμοσμένα σε μια συγκεκριμένη αρχική " +"κατάσταση. Επομένως μια κλάση μπορεί να ορίσει μια ειδική μέθοδο με το " +"όνομα :meth:`~object.__init__`, όπως αυτό::" #: tutorial/classes.rst:299 msgid "" @@ -555,10 +590,10 @@ msgid "" "instance. So in this example, a new, initialized instance can be obtained " "by::" msgstr "" -"Όταν μια κλάση ορίζει μια μέθοδο :meth:`~object.__init__`, το στιγμιότυπο κλάσης " -"καλεί αυτόματα :meth:`!__init__` για το στιγμιότυπο κλάσης που δημιουργήθηκε πρόσφατα. " -"Έτσι σε αυτό το παράδειγμα,ένα νέο, αρχικοποιημένο στιγμιότυπο μπορεί να ληφθεί " -"από::" +"Όταν μια κλάση ορίζει μια μέθοδο :meth:`~object.__init__`, το στιγμιότυπο " +"κλάσης καλεί αυτόματα :meth:`!__init__` για το στιγμιότυπο κλάσης που " +"δημιουργήθηκε πρόσφατα. Έτσι σε αυτό το παράδειγμα,ένα νέο, αρχικοποιημένο " +"στιγμιότυπο μπορεί να ληφθεί από::" #: tutorial/classes.rst:305 msgid "" @@ -568,7 +603,8 @@ msgid "" msgstr "" "Φυσικά, η μέθοδος :meth:`~object.__init__` μπορεί να έχει ορίσματα για " "μεγαλύτερη ευελιξία. Σε αυτήν την περίπτωση, τα ορίσματα που δίνονται στον " -"τελεστή στιγμιότυπου κλάσης μεταβιβάζονται σε :meth:`!__init__`. Για παράδειγμα, ::" +"τελεστή στιγμιότυπου κλάσης μεταβιβάζονται σε :meth:`!__init__`. Για " +"παράδειγμα, ::" #: tutorial/classes.rst:322 msgid "Instance Objects" @@ -580,9 +616,10 @@ msgid "" "instance objects are attribute references. There are two kinds of valid " "attribute names: data attributes and methods." msgstr "" -"Τώρα τι μπορούμε να κάνουμε με τα αντικείμενα στιγμιοτύπων; Οι μόνες λειτουργίες που γίνονται κατανοητές από " -"τα αντικείμενα στιγμιοτύπων είναι οι αναφορές χαρακτηριστικών. Υπάρχουν δύο είδη έγκυρων " -"ονομάτων attributes: attributes και μέθοδοι δεδομένων." +"Τώρα τι μπορούμε να κάνουμε με τα αντικείμενα στιγμιοτύπων; Οι μόνες " +"λειτουργίες που γίνονται κατανοητές από τα αντικείμενα στιγμιοτύπων είναι οι " +"αναφορές χαρακτηριστικών. Υπάρχουν δύο είδη έγκυρων ονομάτων attributes: " +"attributes και μέθοδοι δεδομένων." #: tutorial/classes.rst:328 msgid "" @@ -593,12 +630,12 @@ msgid "" "following piece of code will print the value ``16``, without leaving a " "trace::" msgstr "" -"*τα attributes δεδομένων* αντιστοιχούν στις \"μεταβλητές στιγμιότυπου\" στο Smalltalk και στα " -"\"μέλη δεδομένων\" στη C++. Τα attributes δεδομένων δεν χρειάζεται να δηλωθούν, όπως και οι τοπικές " -"μεταβλητές, εμφανίζονται όταν εκχωρούνται για πρώτη φορά. Για " -"παράδειγμα, εάν το ``x`` είναι στιγμιότυπο του :class:`!MyClass` που δημιουργήθηκε παραπάνω, το " -"ακόλουθο κομμάτι κώδικα θα εκτυπώσει την τιμή ``16``, χωρίς να αφήσει " -"ίχνος::" +"*τα attributes δεδομένων* αντιστοιχούν στις \"μεταβλητές στιγμιότυπου\" στο " +"Smalltalk και στα \"μέλη δεδομένων\" στη C++. Τα attributes δεδομένων δεν " +"χρειάζεται να δηλωθούν, όπως και οι τοπικές μεταβλητές, εμφανίζονται όταν " +"εκχωρούνται για πρώτη φορά. Για παράδειγμα, εάν το ``x`` είναι στιγμιότυπο " +"του :class:`!MyClass` που δημιουργήθηκε παραπάνω, το ακόλουθο κομμάτι κώδικα " +"θα εκτυπώσει την τιμή ``16``, χωρίς να αφήσει ίχνος::" #: tutorial/classes.rst:340 msgid "" @@ -610,13 +647,15 @@ msgid "" "exclusively to mean methods of class instance objects, unless explicitly " "stated otherwise.)" msgstr "" -"Το άλλο είδος αναφοράς χαρακτηριστικού στιγμιότυπου είναι μια *μέθοδος*. Μια μέθοδος είναι μια " -"συνάρτηση που \"ανήκει\" σε ένα αντικείμενο. (Στην Python, ο όρος μέθοδος δεν είναι " -"μοναδικός σε στιγμιότυπα κλάσεων: άλλοι τύποι αντικειμένων μπορούν επίσης να έχουν μεθόδους. Για " -"παράδειγμα, τα αντικείμενα λίστας έχουν μεθόδους που ονομάζονται προσάρτηση(append), εισαγωγή(insert), αφαίρεση(remove), ταξινόμηση(sort) και " -"ούτω καθεξής. Ωστόσο, στην παρακάτω συζήτηση, θα χρησιμοποιήσουμε τον όρο μέθοδος " -"αποκλειστικά για να εννοούμε μεθόδους αντικειμένων στιγμιότυπου κλάσης, εκτός εάν ρητά " -"δηλώνεται διαφορετικά.)" +"Το άλλο είδος αναφοράς χαρακτηριστικού στιγμιότυπου είναι μια *μέθοδος*. Μια " +"μέθοδος είναι μια συνάρτηση που \"ανήκει\" σε ένα αντικείμενο. (Στην Python, " +"ο όρος μέθοδος δεν είναι μοναδικός σε στιγμιότυπα κλάσεων: άλλοι τύποι " +"αντικειμένων μπορούν επίσης να έχουν μεθόδους. Για παράδειγμα, τα " +"αντικείμενα λίστας έχουν μεθόδους που ονομάζονται προσάρτηση(append), " +"εισαγωγή(insert), αφαίρεση(remove), ταξινόμηση(sort) και ούτω καθεξής. " +"Ωστόσο, στην παρακάτω συζήτηση, θα χρησιμοποιήσουμε τον όρο μέθοδος " +"αποκλειστικά για να εννοούμε μεθόδους αντικειμένων στιγμιότυπου κλάσης, " +"εκτός εάν ρητά δηλώνεται διαφορετικά.)" #: tutorial/classes.rst:349 msgid "" @@ -627,12 +666,13 @@ msgid "" "not, since ``MyClass.i`` is not. But ``x.f`` is not the same thing as " "``MyClass.f`` --- it is a *method object*, not a function object." msgstr "" -"Τα έγκυρα ονόματα μεθόδων ενός αντικειμένου στιγμιότυπου εξαρτώνται από την κλάση του. Εξ " -"ορισμού, όλα τα χαρακτηριστικά μιας κλάσης που είναι αντικείμενα συνάρτησης ορίζουν τις " -"αντίστοιχες μεθόδους των στιγμιοτύπων της. Έτσι στο παράδειγμά μας, το `x.f` είναι μια " -"έγκυρη αναφορά μεθόδου, αφού το `MyClass.f` είναι συνάρτηση, αλλά το `x.i` δεν είναι " -"αφού το `MyClass.i` δεν είναι. Αλλά το `x.f` δεν είναι το ίδιο πράγμα με το " -"`MyClass.f` --- είναι ένα *αντικείμενο μεθόδου*, όχι ένα αντικείμενο συνάρτησης." +"Τα έγκυρα ονόματα μεθόδων ενός αντικειμένου στιγμιότυπου εξαρτώνται από την " +"κλάση του. Εξ ορισμού, όλα τα χαρακτηριστικά μιας κλάσης που είναι " +"αντικείμενα συνάρτησης ορίζουν τις αντίστοιχες μεθόδους των στιγμιοτύπων " +"της. Έτσι στο παράδειγμά μας, το `x.f` είναι μια έγκυρη αναφορά μεθόδου, " +"αφού το `MyClass.f` είναι συνάρτηση, αλλά το `x.i` δεν είναι αφού το " +"`MyClass.i` δεν είναι. Αλλά το `x.f` δεν είναι το ίδιο πράγμα με το `MyClass." +"f` --- είναι ένα *αντικείμενο μεθόδου*, όχι ένα αντικείμενο συνάρτησης." #: tutorial/classes.rst:360 msgid "Method Objects" @@ -649,14 +689,15 @@ msgid "" "is a method object, and can be stored away and called at a later time. For " "example::" msgstr "" -"Στο παράδειγμα :class:`!MyClass`, αυτό θα επιστρέψει τη συμβολοσειρά ``'hello " -"world'``. Ωστόσο, δεν είναι απαραίτητο να καλέσετε μια μέθοδο αμέσως: το ``x.f`` " -"είναι ένα αντικείμενο μεθόδου και μπορεί να αποθηκευτεί και να κληθεί αργότερα. Για " -"παράδειγμα::" +"Στο παράδειγμα :class:`!MyClass`, αυτό θα επιστρέψει τη συμβολοσειρά " +"``'hello world'``. Ωστόσο, δεν είναι απαραίτητο να καλέσετε μια μέθοδο " +"αμέσως: το ``x.f`` είναι ένα αντικείμενο μεθόδου και μπορεί να αποθηκευτεί " +"και να κληθεί αργότερα. Για παράδειγμα::" #: tutorial/classes.rst:374 msgid "will continue to print ``hello world`` until the end of time." -msgstr "θα συνεχίσει να εκτυπώνει το ``hello world`` μέχρι το τέλος του χρόνου." +msgstr "" +"θα συνεχίσει να εκτυπώνει το ``hello world`` μέχρι το τέλος του χρόνου." #: tutorial/classes.rst:376 msgid "" @@ -667,11 +708,11 @@ msgid "" "argument is called without any --- even if the argument isn't actually " "used..." msgstr "" -"Τι ακριβώς συμβαίνει όταν καλείται μια μέθοδος; Ίσως έχετε παρατηρήσει ότι ``x.f()`` " -"κλήθηκε χωρίς όρισμα παραπάνω, παρόλο που ο ορισμός της συνάρτησης " -"για :meth:`!f` καθόριζε ένα όρισμα. Τι συνέβη με το " -"όρισμα; Σίγουρα η Python δημιουργεί μια εξαίρεση όταν μια συνάρτηση που απαιτεί " -"όρισμα καλείται χωρίς --- ακόμα κι αν το όρισμα δεν χρησιμοποιείται στην πραγματικότητα " +"Τι ακριβώς συμβαίνει όταν καλείται μια μέθοδος; Ίσως έχετε παρατηρήσει ότι " +"``x.f()`` κλήθηκε χωρίς όρισμα παραπάνω, παρόλο που ο ορισμός της συνάρτησης " +"για :meth:`!f` καθόριζε ένα όρισμα. Τι συνέβη με το όρισμα; Σίγουρα η Python " +"δημιουργεί μια εξαίρεση όταν μια συνάρτηση που απαιτεί όρισμα καλείται χωρίς " +"--- ακόμα κι αν το όρισμα δεν χρησιμοποιείται στην πραγματικότητα " #: tutorial/classes.rst:382 msgid "" @@ -683,13 +724,13 @@ msgid "" "that is created by inserting the method's instance object before the first " "argument." msgstr "" -"Στην πραγματικότητα, μπορεί να έχετε μαντέψει την απάντηση: το ιδιαίτερο με τις μεθόδους " -"είναι ότι το αντικείμενο του στιγμιότυπου μεταβιβάζεται ως το πρώτο όρισμα της " -"συνάρτησης. Στο παράδειγμά μας, η κλήση ``x.f()`` είναι ακριβώς ισοδύναμη με το " -"``MyClass.f(x)``. Γενικά, η κλήση μιας μεθόδου με μια λίστα από *n* ορίσματα " -"ισοδυναμεί με την κλήση της αντίστοιχης συνάρτησης με μια λίστα ορισμάτων " -"που δημιουργείται με την εισαγωγή του αντικειμένου στιγμιότυπου της μεθόδου πριν από το πρώτο " -"όρισμα." +"Στην πραγματικότητα, μπορεί να έχετε μαντέψει την απάντηση: το ιδιαίτερο με " +"τις μεθόδους είναι ότι το αντικείμενο του στιγμιότυπου μεταβιβάζεται ως το " +"πρώτο όρισμα της συνάρτησης. Στο παράδειγμά μας, η κλήση ``x.f()`` είναι " +"ακριβώς ισοδύναμη με το ``MyClass.f(x)``. Γενικά, η κλήση μιας μεθόδου με " +"μια λίστα από *n* ορίσματα ισοδυναμεί με την κλήση της αντίστοιχης " +"συνάρτησης με μια λίστα ορισμάτων που δημιουργείται με την εισαγωγή του " +"αντικειμένου στιγμιότυπου της μεθόδου πριν από το πρώτο όρισμα." #: tutorial/classes.rst:389 msgid "" @@ -701,13 +742,15 @@ msgid "" "argument list is constructed from the instance object and the argument list, " "and the function object is called with this new argument list." msgstr "" -"Γενικά, οι μέθοδοι λειτουργούν ως εξής. Όταν γίνεται αναφορά σε ένα χαρακτηριστικό μη δεδομένων ενός " -"στιγμιότυπου, γίνεται η αναζήτηση της κλάσης του στιγμιότυπου. Εάν το όνομα υποδηλώνει " -"ένα έγκυρο χαρακτηριστικό κλάσης που είναι αντικείμενο συνάρτησης, οι αναφορές τόσο στο " -"αντικείμενο στιγμιότυπου όσο και στο αντικείμενο συνάρτησης συσκευάζονται σε ένα " -"αντικείμενο μεθόδου. Όταν το αντικείμενο της μεθόδου καλείται με μια λίστα ορισμάτων,δημιουργείται μια νέα " -"λίστα ορισμάτων από το αντικείμενο στιγμιότυπου και τη λίστα ορισμάτων, " -"και το αντικείμενο συνάρτησης καλείται με αυτήν τη νέα λίστα ορισμάτων." +"Γενικά, οι μέθοδοι λειτουργούν ως εξής. Όταν γίνεται αναφορά σε ένα " +"χαρακτηριστικό μη δεδομένων ενός στιγμιότυπου, γίνεται η αναζήτηση της " +"κλάσης του στιγμιότυπου. Εάν το όνομα υποδηλώνει ένα έγκυρο χαρακτηριστικό " +"κλάσης που είναι αντικείμενο συνάρτησης, οι αναφορές τόσο στο αντικείμενο " +"στιγμιότυπου όσο και στο αντικείμενο συνάρτησης συσκευάζονται σε ένα " +"αντικείμενο μεθόδου. Όταν το αντικείμενο της μεθόδου καλείται με μια λίστα " +"ορισμάτων,δημιουργείται μια νέα λίστα ορισμάτων από το αντικείμενο " +"στιγμιότυπου και τη λίστα ορισμάτων, και το αντικείμενο συνάρτησης καλείται " +"με αυτήν τη νέα λίστα ορισμάτων." #: tutorial/classes.rst:402 msgid "Class and Instance Variables" @@ -719,9 +762,9 @@ msgid "" "and class variables are for attributes and methods shared by all instances " "of the class::" msgstr "" -"Σε γενικές γραμμές, οι μεταβλητές στιγμιότυπου προορίζονται για δεδομένα μοναδικά για κάθε στιγμιότυπο " -"και οι μεταβλητές κλάσης είναι για χαρακτηριστικά και μεθόδους που μοιράζονται όλα τα στιγμιότυπα " -"της κλάσης::" +"Σε γενικές γραμμές, οι μεταβλητές στιγμιότυπου προορίζονται για δεδομένα " +"μοναδικά για κάθε στιγμιότυπο και οι μεταβλητές κλάσης είναι για " +"χαρακτηριστικά και μεθόδους που μοιράζονται όλα τα στιγμιότυπα της κλάσης::" #: tutorial/classes.rst:426 msgid "" @@ -731,15 +774,17 @@ msgid "" "not be used as a class variable because just a single list would be shared " "by all *Dog* instances::" msgstr "" -"Όπως συζητήθηκε στο :ref:`tut-object`, τα κοινά δεδομένα μπορεί να έχουν πιθανώς εκπληκτικά " -"αποτελέσματα με τη συμμετοχή αντικειμένων :term:`mutable` όπως λίστες και " -"λεξικά. Για παράδειγμα, η λίστα *tricks* στον παρακάτω κώδικα δεν θα πρέπει να " -"χρησιμοποιείται ως μεταβλητή κλάσης επειδή μόνο μία λίστα θα μπορούσε να είναι κοινή " -"σε όλα τα στιγμιότυπα *Dog*::" +"Όπως συζητήθηκε στο :ref:`tut-object`, τα κοινά δεδομένα μπορεί να έχουν " +"πιθανώς εκπληκτικά αποτελέσματα με τη συμμετοχή αντικειμένων :term:" +"`mutable` όπως λίστες και λεξικά. Για παράδειγμα, η λίστα *tricks* στον " +"παρακάτω κώδικα δεν θα πρέπει να χρησιμοποιείται ως μεταβλητή κλάσης επειδή " +"μόνο μία λίστα θα μπορούσε να είναι κοινή σε όλα τα στιγμιότυπα *Dog*::" #: tutorial/classes.rst:449 msgid "Correct design of the class should use an instance variable instead::" -msgstr "Ο σωστός σχεδιασμός της κλάσης θα πρέπει να χρησιμοποιεί μια μεταβλητή στιγμιότυπου αντί::" +msgstr "" +"Ο σωστός σχεδιασμός της κλάσης θα πρέπει να χρησιμοποιεί μια μεταβλητή " +"στιγμιότυπου αντί::" #: tutorial/classes.rst:473 msgid "Random Remarks" @@ -750,8 +795,9 @@ msgid "" "If the same attribute name occurs in both an instance and in a class, then " "attribute lookup prioritizes the instance::" msgstr "" -"Αν το ίδιο όνομα χαρακτηριστικού εμφανίζεται και σε ένα στιγμιότυπο και σε μια κλάση, τότε " -"η αναζήτηση χαρακτηριστικών δίνει προτεραιότητα στο στιγμιότυπο::" +"Αν το ίδιο όνομα χαρακτηριστικού εμφανίζεται και σε ένα στιγμιότυπο και σε " +"μια κλάση, τότε η αναζήτηση χαρακτηριστικών δίνει προτεραιότητα στο " +"στιγμιότυπο::" #: tutorial/classes.rst:492 msgid "" @@ -763,13 +809,15 @@ msgid "" "implementation details and control access to an object if necessary; this " "can be used by extensions to Python written in C.)" msgstr "" -"Τα χαρακτηριστικά δεδομένων μπορούν να αναφέρονται με μεθόδους καθώς και από απλούς χρήστες " -"(\"πελάτες\") ενός αντικειμένου. Με άλλα λόγια, οι κλάσεις δεν μπορούν να χρησιμοποιηθούν για την " -"υλοποίηση καθαρών αφηρημένων τύπων δεδομένων. Στην πραγματικότητα, τίποτα στην Python δεν καθιστά " -"δυνατή την επιβολή της απόκρυψης δεδομένων --- όλα βασίζονται σε σύμβαση. " -"(από την άλλη πλευρά, η εφαρμογή Python, γραμμένη σε C, μπορεί να αποκρύψει εντελώς " -"τις λεπτομέρειες υλοποίησης και να ελέγξει την πρόσβαση σε ένα αντικείμενο εάν είναι απαραίτητο " -"αυτό μπορεί να χρησιμοποιηθεί από επεκτάσεις στην Python γραμμένες σε C.)" +"Τα χαρακτηριστικά δεδομένων μπορούν να αναφέρονται με μεθόδους καθώς και από " +"απλούς χρήστες (\"πελάτες\") ενός αντικειμένου. Με άλλα λόγια, οι κλάσεις " +"δεν μπορούν να χρησιμοποιηθούν για την υλοποίηση καθαρών αφηρημένων τύπων " +"δεδομένων. Στην πραγματικότητα, τίποτα στην Python δεν καθιστά δυνατή την " +"επιβολή της απόκρυψης δεδομένων --- όλα βασίζονται σε σύμβαση. (από την άλλη " +"πλευρά, η εφαρμογή Python, γραμμένη σε C, μπορεί να αποκρύψει εντελώς τις " +"λεπτομέρειες υλοποίησης και να ελέγξει την πρόσβαση σε ένα αντικείμενο εάν " +"είναι απαραίτητο αυτό μπορεί να χρησιμοποιηθεί από επεκτάσεις στην Python " +"γραμμένες σε C.)" #: tutorial/classes.rst:500 msgid "" @@ -779,11 +827,13 @@ msgid "" "without affecting the validity of the methods, as long as name conflicts are " "avoided --- again, a naming convention can save a lot of headaches here." msgstr "" -"Οι χρήστες θα πρέπει να χρησιμοποιούν τα χαρακτηριστικά δεδομένων με προσοχή --- οι χρήστες ενδέχεται να μπερδέψουν " -"τα αμετάβλητα που διατηρούνται από τις μεθόδους σφραγίζοντας τα χαρακτηριστικά των δεδομένων τους. " -"Λάβετε υπόψη ότι οι χρήστες μπορούν να προσθέσουν δικά τους χαρακτηριστικά δεδομένων σε ένα αντικείμενο στιγμιότυπου " -"χωρίς να επηρεάσουν την εγκυρότητα των μεθόδων, εφόσον αποφεύγονται οι συγκρούσεις ονομάτων " -"--- και πάλι, μια σύμβαση ονομασίας μπορεί να σώσει πολλούς πονοκεφάλους εδώ." +"Οι χρήστες θα πρέπει να χρησιμοποιούν τα χαρακτηριστικά δεδομένων με προσοχή " +"--- οι χρήστες ενδέχεται να μπερδέψουν τα αμετάβλητα που διατηρούνται από " +"τις μεθόδους σφραγίζοντας τα χαρακτηριστικά των δεδομένων τους. Λάβετε υπόψη " +"ότι οι χρήστες μπορούν να προσθέσουν δικά τους χαρακτηριστικά δεδομένων σε " +"ένα αντικείμενο στιγμιότυπου χωρίς να επηρεάσουν την εγκυρότητα των μεθόδων, " +"εφόσον αποφεύγονται οι συγκρούσεις ονομάτων --- και πάλι, μια σύμβαση " +"ονομασίας μπορεί να σώσει πολλούς πονοκεφάλους εδώ." #: tutorial/classes.rst:506 msgid "" @@ -792,10 +842,11 @@ msgid "" "methods: there is no chance of confusing local variables and instance " "variables when glancing through a method." msgstr "" -"Δεν υπάρχει συντομογραφία για την αναφορά χαρακτηριστικών δεδομένων (ή άλλων μεθόδων!) " -"μέσα από τις μεθόδους. Διαπιστώνω ότι αυτό στην πραγματικότητα αυξάνει την αναγνωσιμότητα των " -"μεθόδων: δεν υπάρχει καμία πιθανότητα σύγχυσης τοπικών μεταβλητών και των μεταβλητών παραδείγματος " -"όταν εξετάζουμε μια μέθοδο." +"Δεν υπάρχει συντομογραφία για την αναφορά χαρακτηριστικών δεδομένων (ή άλλων " +"μεθόδων!) μέσα από τις μεθόδους. Διαπιστώνω ότι αυτό στην πραγματικότητα " +"αυξάνει την αναγνωσιμότητα των μεθόδων: δεν υπάρχει καμία πιθανότητα " +"σύγχυσης τοπικών μεταβλητών και των μεταβλητών παραδείγματος όταν εξετάζουμε " +"μια μέθοδο." #: tutorial/classes.rst:511 msgid "" @@ -807,11 +858,11 @@ msgid "" "convention." msgstr "" "Συχνά, το πρώτο όρισμα μιας μεθόδου ονομάζεται `self`. Αυτό δεν είναι τίποτα " -"περισσότερο από μια σύμβαση: το όνομα `self` δεν έχει καμία απολύτως ιδιαίτερη σημασία " -"για την Python. Σημειώστε, ωστόσο, ότι αν δεν ακολουθήσετε τη σύμβαση ο κώδικάς σας " -"μπορεί να είναι λιγότερο ευανάγνωστος σε άλλους προγραμματιστές Python, και είναι επίσης κατανοητό " -"ότι μπορεί να γραφτεί ένα πρόγραμμα *class browser* που να βασίζεται σε μια τέτοια " -"σύμβαση." +"περισσότερο από μια σύμβαση: το όνομα `self` δεν έχει καμία απολύτως " +"ιδιαίτερη σημασία για την Python. Σημειώστε, ωστόσο, ότι αν δεν ακολουθήσετε " +"τη σύμβαση ο κώδικάς σας μπορεί να είναι λιγότερο ευανάγνωστος σε άλλους " +"προγραμματιστές Python, και είναι επίσης κατανοητό ότι μπορεί να γραφτεί ένα " +"πρόγραμμα *class browser* που να βασίζεται σε μια τέτοια σύμβαση." #: tutorial/classes.rst:517 msgid "" @@ -820,10 +871,11 @@ msgid "" "textually enclosed in the class definition: assigning a function object to a " "local variable in the class is also ok. For example::" msgstr "" -"Κάθε αντικείμενο συνάρτησης που είναι χαρακτηριστικό κλάσης ορίζει μια μέθοδο για στιγμιότυπα " -"αυτής της κλάσης. Δεν είναι απαραίτητο ο ορισμός της συνάρτησης να " -"περικλείεται με κείμενο στον ορισμό της κλάσης: η αντιστοίχηση ενός αντικειμένου συνάρτησης σε μια " -"τοπική μεταβλητή της κλάσης είναι επίσης εντάξει. Για παράδειγμα::" +"Κάθε αντικείμενο συνάρτησης που είναι χαρακτηριστικό κλάσης ορίζει μια " +"μέθοδο για στιγμιότυπα αυτής της κλάσης. Δεν είναι απαραίτητο ο ορισμός της " +"συνάρτησης να περικλείεται με κείμενο στον ορισμό της κλάσης: η αντιστοίχηση " +"ενός αντικειμένου συνάρτησης σε μια τοπική μεταβλητή της κλάσης είναι επίσης " +"εντάξει. Για παράδειγμα::" #: tutorial/classes.rst:534 msgid "" @@ -832,17 +884,19 @@ msgid "" "instances of :class:`!C` --- ``h`` being exactly equivalent to ``g``. Note " "that this practice usually only serves to confuse the reader of a program." msgstr "" -"Τώρα τα ``f``, ``g`` και ``h`` είναι όλα χαρακτηριστικά της κλάσης :class:`!C` που " -"αναφέρονται σε αντικείμενα συνάρτησης, και κατά συνέπεια είναι όλες μέθοδοι " -"στιγμιοτύπων του :class:`!C` --- Το ``h`` είναι ακριβώς ισοδύναμο με το ``g``. Σημειώστε " -"ότι αυτή η πρακτική συνήθως χρησιμεύει μόνο για να μπερδέψει τον αναγνώστη ενός προγράμματος. " +"Τώρα τα ``f``, ``g`` και ``h`` είναι όλα χαρακτηριστικά της κλάσης :class:`!" +"C` που αναφέρονται σε αντικείμενα συνάρτησης, και κατά συνέπεια είναι όλες " +"μέθοδοι στιγμιοτύπων του :class:`!C` --- Το ``h`` είναι ακριβώς ισοδύναμο με " +"το ``g``. Σημειώστε ότι αυτή η πρακτική συνήθως χρησιμεύει μόνο για να " +"μπερδέψει τον αναγνώστη ενός προγράμματος. " #: tutorial/classes.rst:539 msgid "" "Methods may call other methods by using method attributes of the ``self`` " "argument::" msgstr "" -"Οι μέθοδοι μπορούν να καλούν άλλες μεθόδους χρησιμοποιώντας χαρακτηριστικά μεθόδου του argument `self`:: " +"Οι μέθοδοι μπορούν να καλούν άλλες μεθόδους χρησιμοποιώντας χαρακτηριστικά " +"μεθόδου του argument ``self``:: " #: tutorial/classes.rst:553 msgid "" @@ -856,22 +910,25 @@ msgid "" "itself defined in this global scope, and in the next section we'll find some " "good reasons why a method would want to reference its own class." msgstr "" -"Οι μέθοδοι μπορεί να αναφέρονται σε καθολικά ονόματα με τον ίδιο τρόπο όπως οι συνηθισμένες συναρτήσεις." -"Η καθολική εμβέλεια που σχετίζεται με μια μέθοδο είναι το module που περιέχει " -"τον ορισμό της. (Μια κλάση δεν χρησιμοποιείται ποτέ ως καθολική εμβέλεια.) Αν και σπάνια " -"συναντά κανείς έναν καλό λόγο για τη χρήση καθολικών δεδομένων σε μια μέθοδο, υπάρχουν πολλές " -"Νόμιμες χρήσεις της καθολικής εμβέλειας: για ένα πράγμα, οι λειτουργίες και οι λειτουργικές μονάδες " -"που εισάγονται στην καθολική εμβέλεια μπορούν να χρησιμοποιηθούν από μεθόδους, καθώς και συναρτήσεις " -"και κλάσεις που ορίζονται σε αυτό. Συνήθως, η κλάση που περιέχει τη μέθοδο " -"ορίζεται από μόνη της σε αυτή την καθολική εμβέλεια, και στην επόμενη ενότητα θα βρούμε μερικούς " -"καλούς λόγους για τους οποίους μια μέθοδος θα ήθελε να αναφέρει τη δική της κλάση." +"Οι μέθοδοι μπορεί να αναφέρονται σε καθολικά ονόματα με τον ίδιο τρόπο όπως " +"οι συνηθισμένες συναρτήσεις.Η καθολική εμβέλεια που σχετίζεται με μια μέθοδο " +"είναι το module που περιέχει τον ορισμό της. (Μια κλάση δεν χρησιμοποιείται " +"ποτέ ως καθολική εμβέλεια.) Αν και σπάνια συναντά κανείς έναν καλό λόγο για " +"τη χρήση καθολικών δεδομένων σε μια μέθοδο, υπάρχουν πολλές Νόμιμες χρήσεις " +"της καθολικής εμβέλειας: για ένα πράγμα, οι λειτουργίες και οι λειτουργικές " +"μονάδες που εισάγονται στην καθολική εμβέλεια μπορούν να χρησιμοποιηθούν από " +"μεθόδους, καθώς και συναρτήσεις και κλάσεις που ορίζονται σε αυτό. Συνήθως, " +"η κλάση που περιέχει τη μέθοδο ορίζεται από μόνη της σε αυτή την καθολική " +"εμβέλεια, και στην επόμενη ενότητα θα βρούμε μερικούς καλούς λόγους για τους " +"οποίους μια μέθοδος θα ήθελε να αναφέρει τη δική της κλάση." #: tutorial/classes.rst:563 msgid "" "Each value is an object, and therefore has a *class* (also called its " "*type*). It is stored as ``object.__class__``." msgstr "" -"Κάθε τιμή είναι ένα αντικείμενο και επομένως έχει μια *κλάση* (ονομάζεται επίσης *τύπος* της). Αποθηκεύεται ως ``object.__class__``. " +"Κάθε τιμή είναι ένα αντικείμενο και επομένως έχει μια *κλάση* (ονομάζεται " +"επίσης *τύπος* της). Αποθηκεύεται ως ``object.__class__``. " #: tutorial/classes.rst:570 msgid "Inheritance" @@ -883,9 +940,9 @@ msgid "" "without supporting inheritance. The syntax for a derived class definition " "looks like this::" msgstr "" -"Φυσικά, ένα χαρακτηριστικό γλώσσας δεν θα ήταν αντάξιο του ονόματος \"class\" " -"χωρίς την υποστήριξη της κληρονομικότητας. Η σύνταξη για έναν παραγόμενο ορισμό κλάσης " -"μοιάζει με αυτό:" +"Φυσικά, ένα χαρακτηριστικό γλώσσας δεν θα ήταν αντάξιο του ονόματος " +"\"class\" χωρίς την υποστήριξη της κληρονομικότητας. Η σύνταξη για έναν " +"παραγόμενο ορισμό κλάσης μοιάζει με αυτό:" #: tutorial/classes.rst:583 msgid "" @@ -894,10 +951,11 @@ msgid "" "class name, other arbitrary expressions are also allowed. This can be " "useful, for example, when the base class is defined in another module::" msgstr "" -"Το όνομα :class:`!BaseClassName` πρέπει να οριστεί σε έναν χώρο ονομάτων προσβάσιμο " -"από το πεδίο που περιέχει τον παραγόμενο ορισμό κλάσης. Στη θέση ενός ονόματος βασικής " -"κλάσης, επιτρέπονται και άλλες αυθαίρετες εκφράσεις. Αυτό μπορεί να είναι " -"χρήσιμο, για παράδειγμα, όταν η βασική κλάση ορίζεται σε άλλη module::" +"Το όνομα :class:`!BaseClassName` πρέπει να οριστεί σε έναν χώρο ονομάτων " +"προσβάσιμο από το πεδίο που περιέχει τον παραγόμενο ορισμό κλάσης. Στη θέση " +"ενός ονόματος βασικής κλάσης, επιτρέπονται και άλλες αυθαίρετες εκφράσεις. " +"Αυτό μπορεί να είναι χρήσιμο, για παράδειγμα, όταν η βασική κλάση ορίζεται " +"σε άλλη module::" #: tutorial/classes.rst:591 msgid "" @@ -908,12 +966,13 @@ msgid "" "rule is applied recursively if the base class itself is derived from some " "other class." msgstr "" -"Η εκτέλεση ενός παραγόμενου ορισμού κλάσης προχωρά το ίδιο όπως για μια βασική " -"κλάση. Όταν το αντικείμενο της κλάσης κατασκευάζεται, η βασική κλάση απομνημονεύεται." -"Αυτό χρησιμοποιείται για την επίλυση αναφορών χαρακτηριστικών: εάν ένα ζητούμενο χαρακτηριστικό " -"δεν βρεθεί στην κλάση, η αναζήτηση προχωρά στην αναζήτηση στη βασική κλάση. Αυτός " -"ο κανόνας εφαρμόζεται αναδρομικά εάν η ίδια η βασική κλάση προέρχεται από κάποια " -"άλλη κλάση." +"Η εκτέλεση ενός παραγόμενου ορισμού κλάσης προχωρά το ίδιο όπως για μια " +"βασική κλάση. Όταν το αντικείμενο της κλάσης κατασκευάζεται, η βασική κλάση " +"απομνημονεύεται.Αυτό χρησιμοποιείται για την επίλυση αναφορών " +"χαρακτηριστικών: εάν ένα ζητούμενο χαρακτηριστικό δεν βρεθεί στην κλάση, η " +"αναζήτηση προχωρά στην αναζήτηση στη βασική κλάση. Αυτός ο κανόνας " +"εφαρμόζεται αναδρομικά εάν η ίδια η βασική κλάση προέρχεται από κάποια άλλη " +"κλάση." #: tutorial/classes.rst:597 msgid "" @@ -923,11 +982,12 @@ msgid "" "searched, descending down the chain of base classes if necessary, and the " "method reference is valid if this yields a function object." msgstr "" -"Δεν υπάρχει τίποτα το ιδιαίτερο σχετικά με την δημιουργία στιγμιότυπου παραγόμενων κλάσεων: " -"``DerivedClassName()`` δημιουργεί ένα νέο στιγμιότυπο της κλάσης. Οι αναφορές " -"μεθόδων επιλύονται ως εξής: γίνεται αναζήτηση του αντίστοιχου χαρακτηριστικού κλάσης, " -"κατεβαίνοντας προς τα κάτω στην αλυσίδα των βασικών κλάσεων εάν είναι απαραίτητο, και " -"η αναφορά της μεθόδου είναι έγκυρη εάν αυτό αποδίδει ένα αντικείμενο συνάρτησης." +"Δεν υπάρχει τίποτα το ιδιαίτερο σχετικά με την δημιουργία στιγμιότυπου " +"παραγόμενων κλάσεων: ``DerivedClassName()`` δημιουργεί ένα νέο στιγμιότυπο " +"της κλάσης. Οι αναφορές μεθόδων επιλύονται ως εξής: γίνεται αναζήτηση του " +"αντίστοιχου χαρακτηριστικού κλάσης, κατεβαίνοντας προς τα κάτω στην αλυσίδα " +"των βασικών κλάσεων εάν είναι απαραίτητο, και η αναφορά της μεθόδου είναι " +"έγκυρη εάν αυτό αποδίδει ένα αντικείμενο συνάρτησης." #: tutorial/classes.rst:603 msgid "" @@ -937,11 +997,13 @@ msgid "" "class may end up calling a method of a derived class that overrides it. " "(For C++ programmers: all methods in Python are effectively ``virtual``.)" msgstr "" -"Οι παράγωγες κλάσεις ενδέχεται να παρακάμπτουν τις μεθόδους των βασικών τους κλάσεων. Επειδή οι μέθοδοι " -"δεν έχουν ειδικά προνόμια όταν καλούν άλλες μεθόδους του ίδιου αντικειμένου, μια " -"μέθοδος μιας βασικής κλάσης που καλεί μια άλλη μέθοδο που ορίζεται στην ίδια βασική " -"κλάση μπορεί να καταλήξει να καλεί μια μέθοδο μιας παραγόμενης κλάσης που την αντικαθιστά." -"(Για προγραμματιστές C++: όλες οι μέθοδοι στην Python είναι ουσιαστικά «εικονικές».)" +"Οι παράγωγες κλάσεις ενδέχεται να παρακάμπτουν τις μεθόδους των βασικών τους " +"κλάσεων. Επειδή οι μέθοδοι δεν έχουν ειδικά προνόμια όταν καλούν άλλες " +"μεθόδους του ίδιου αντικειμένου, μια μέθοδος μιας βασικής κλάσης που καλεί " +"μια άλλη μέθοδο που ορίζεται στην ίδια βασική κλάση μπορεί να καταλήξει να " +"καλεί μια μέθοδο μιας παραγόμενης κλάσης που την αντικαθιστά.(Για " +"προγραμματιστές C++: όλες οι μέθοδοι στην Python είναι ουσιαστικά " +"«εικονικές».)" #: tutorial/classes.rst:609 msgid "" @@ -952,16 +1014,19 @@ msgid "" "well. (Note that this only works if the base class is accessible as " "``BaseClassName`` in the global scope.)" msgstr "" -"Μια υπερισχύουσα μέθοδος σε μια παραγόμενη κλάση μπορεί στην πραγματικότητα να θέλει να επεκτείνει αντί " -"να αντικαταστήσει απλώς τη μέθοδο βασικής κλάσης με το ίδιο όνομα. Υπάρχει ένας " -"απλός τρόπος για να καλέσετε τη μέθοδο βασικής κλάσης απευθείας: απλώς καλέστε το " -"``BaseClassName.methodname(self, arguments)`. Αυτό είναι περιστασιακά χρήσιμο στους χρήστες " -"(Λάβετε υπόψη ότι αυτό λειτουργεί μόνο εάν η βασική κλάση είναι προσβάσιμη ως " +"Μια υπερισχύουσα μέθοδος σε μια παραγόμενη κλάση μπορεί στην πραγματικότητα " +"να θέλει να επεκτείνει αντί να αντικαταστήσει απλώς τη μέθοδο βασικής κλάσης " +"με το ίδιο όνομα. Υπάρχει ένας απλός τρόπος για να καλέσετε τη μέθοδο " +"βασικής κλάσης απευθείας: απλώς καλέστε το ``BaseClassName.methodname(self, " +"arguments)`. Αυτό είναι περιστασιακά χρήσιμο στους χρήστες (Λάβετε υπόψη ότι " +"αυτό λειτουργεί μόνο εάν η βασική κλάση είναι προσβάσιμη ως " "``BaseClassName`` στην καθολική εμβέλεια.)" #: tutorial/classes.rst:616 msgid "Python has two built-in functions that work with inheritance:" -msgstr "Η Python έχει δύο (ενσωματωμένες) built-in συναρτήσεις που λειτουργούν με κληρονομικότητα:" +msgstr "" +"Η Python έχει δύο (ενσωματωμένες) built-in συναρτήσεις που λειτουργούν με " +"κληρονομικότητα:" #: tutorial/classes.rst:618 msgid "" @@ -969,9 +1034,10 @@ msgid "" "will be ``True`` only if ``obj.__class__`` is :class:`int` or some class " "derived from :class:`int`." msgstr "" -"Χρησιμοποιήστε το :func:`isinstance` για να ελέγξετε τον τύπο ενός στιγμιότυπου: το ``isinstance(obj, int)`` " -"θα είναι ``True`` μόνο εάν το ``obj.__class__`` είναι :class:`int` ή προέρχεται από κάποια κλάση " -"από :class:`int`." +"Χρησιμοποιήστε το :func:`isinstance` για να ελέγξετε τον τύπο ενός " +"στιγμιότυπου: το ``isinstance(obj, int)`` θα είναι ``True`` μόνο εάν το " +"``obj.__class__`` είναι :class:`int` ή προέρχεται από κάποια κλάση από :" +"class:`int`." #: tutorial/classes.rst:622 msgid "" @@ -980,10 +1046,10 @@ msgid "" "``issubclass(float, int)`` is ``False`` since :class:`float` is not a " "subclass of :class:`int`." msgstr "" -"Χρησιμοποιήστε το :func:`issubclass` για να ελέγξετε την κληρονομικότητα κλάσης: Το ``issubclass(bool, int)`` " -"είναι `` True`` αφού το :class:`bool` είναι υποκλάση του :class:`int`. Ωστόσο, το " -"``issubclass(float, int)`` είναι ``False`` αφού το :class:`float` δεν είναι " -"υποκλάση του :class:`int`." +"Χρησιμοποιήστε το :func:`issubclass` για να ελέγξετε την κληρονομικότητα " +"κλάσης: Το ``issubclass(bool, int)`` είναι `` True`` αφού το :class:`bool` " +"είναι υποκλάση του :class:`int`. Ωστόσο, το ``issubclass(float, int)`` είναι " +"``False`` αφού το :class:`float` δεν είναι υποκλάση του :class:`int`." #: tutorial/classes.rst:632 msgid "Multiple Inheritance" @@ -994,8 +1060,8 @@ msgid "" "Python supports a form of multiple inheritance as well. A class definition " "with multiple base classes looks like this::" msgstr "" -"Η Python υποστηρίζει επίσης μια μορφή πολλαπλής κληρονομικότητας. Ένας ορισμός κλάσης " -"με πολλαπλές βασικές κλάσεις μοιάζει με αυτό::" +"Η Python υποστηρίζει επίσης μια μορφή πολλαπλής κληρονομικότητας. Ένας " +"ορισμός κλάσης με πολλαπλές βασικές κλάσεις μοιάζει με αυτό::" #: tutorial/classes.rst:644 msgid "" @@ -1007,13 +1073,13 @@ msgid "" "classes of :class:`!Base1`, and if it was not found there, it was searched " "for in :class:`!Base2`, and so on." msgstr "" -"Για τους περισσότερους σκοπούς, στις πιο απλές περιπτώσεις, μπορείτε να σκεφτείτε την αναζήτηση " -"χαρακτηριστικών που κληρονομήθηκαν από μια γονική κλάση ως depth-first, από αριστερά προς τα δεξιά, " -"χωρίς αναζήτηση δύο φορές στην ίδια κλάση όπου υπάρχει επικάλυψη στην " -"ιεραρχία. Έτσι, εάν δεν βρεθεί ένα χαρακτηριστικό στο :class:`!DerivedClassName`, " -"αναζητείται στο :class:`!Base1` και μετά (αναδρομικά) στις βασικές " -"κλάσεις του :class:`!Base1`, και αν δεν βρέθηκε εκεί,αναζητήθηκε στο " -":class:`!Base2`, και ούτω καθεξής." +"Για τους περισσότερους σκοπούς, στις πιο απλές περιπτώσεις, μπορείτε να " +"σκεφτείτε την αναζήτηση χαρακτηριστικών που κληρονομήθηκαν από μια γονική " +"κλάση ως depth-first, από αριστερά προς τα δεξιά, χωρίς αναζήτηση δύο φορές " +"στην ίδια κλάση όπου υπάρχει επικάλυψη στην ιεραρχία. Έτσι, εάν δεν βρεθεί " +"ένα χαρακτηριστικό στο :class:`!DerivedClassName`, αναζητείται στο :class:`!" +"Base1` και μετά (αναδρομικά) στις βασικές κλάσεις του :class:`!Base1`, και " +"αν δεν βρέθηκε εκεί,αναζητήθηκε στο :class:`!Base2`, και ούτω καθεξής." #: tutorial/classes.rst:651 msgid "" @@ -1023,10 +1089,11 @@ msgid "" "method and is more powerful than the super call found in single-inheritance " "languages." msgstr "" -"Στην πραγματικότητα, είναι λίγο πιο περίπλοκο από αυτό. Η σειρά ανάλυσης της μεθόδου " -"αλλάζει δυναμικά για να υποστηρίξει συνεργατικές κλήσεις σε :func:`super`. Αυτή " -"η προσέγγιση είναι γνωστή σε ορισμένες άλλες γλώσσες πολλαπλής κληρονομικότητας ως call-next-method " -"και είναι πιο ισχυρή από τη σούπερ κλήση που βρίσκεται σε γλώσσες μεμονωμένης κληρονομικότητας." +"Στην πραγματικότητα, είναι λίγο πιο περίπλοκο από αυτό. Η σειρά ανάλυσης της " +"μεθόδου αλλάζει δυναμικά για να υποστηρίξει συνεργατικές κλήσεις σε :func:" +"`super`. Αυτή η προσέγγιση είναι γνωστή σε ορισμένες άλλες γλώσσες πολλαπλής " +"κληρονομικότητας ως call-next-method και είναι πιο ισχυρή από τη σούπερ " +"κλήση που βρίσκεται σε γλώσσες μεμονωμένης κληρονομικότητας." #: tutorial/classes.rst:657 msgid "" @@ -1044,19 +1111,21 @@ msgid "" "multiple inheritance. For more detail, see https://www.python.org/download/" "releases/2.3/mro/." msgstr "" -"Η δυναμική σειρά είναι απαραίτητη επειδή όλες οι περιπτώσεις πολλαπλής κληρονομικότητας " -"εμφανίζουν μία ή περισσότερες σχέσεις διαμαντιών (όπου τουλάχιστον μια από τις γονικές " -"κλάσεις μπορεί να προσπελαστεί μέσω πολλαπλών διαδρομών από την κατώτατη κλάση). " -"Για παράδειγμα, όλες οι κλάσεις κληρονομούν από :class:`object`, επομένως κάθε περίπτωση " -"πολλαπλής κληρονομικότητας παρέχει περισσότερες από μία διαδρομές για να φτάσετε στο :class:`object`. " -"Για να μην υπάρχει πρόσβαση στις βασικές κλάσεις περισσότερες από μία φορές, ο δυναμικός " -"αλγόριθμος γραμμικοποιεί τη σειρά αναζήτησης με τρόπο που διατηρεί τη σειρά από αριστερά προς τα δεξιά-" -"που καθορίζεται σε κάθε κλάση, που καλεί κάθε γονέα μόνο μία φορά, " -"και που είναι μονότονος (που σημαίνει ότι μια κλάση μπορεί να γίνει υπό-κλάση χωρίς " -"να επηρεαστεί η σειρά προτεραιότητας των γονέων της). Συνολικά, αυτές " -"οι ιδιότητες καθιστούν δυνατό τον σχεδιασμό αξιόπιστων και επεκτάσιμων κλάσεων με " -"πολλαπλή κληρονομικότητα. Για περισσότερες λεπτομέρειες, ανατρέξτε στη διεύθυνση https://www.python.org/download/" -"releases/2.3/mro/." +"Η δυναμική σειρά είναι απαραίτητη επειδή όλες οι περιπτώσεις πολλαπλής " +"κληρονομικότητας εμφανίζουν μία ή περισσότερες σχέσεις διαμαντιών (όπου " +"τουλάχιστον μια από τις γονικές κλάσεις μπορεί να προσπελαστεί μέσω " +"πολλαπλών διαδρομών από την κατώτατη κλάση). Για παράδειγμα, όλες οι κλάσεις " +"κληρονομούν από :class:`object`, επομένως κάθε περίπτωση πολλαπλής " +"κληρονομικότητας παρέχει περισσότερες από μία διαδρομές για να φτάσετε στο :" +"class:`object`. Για να μην υπάρχει πρόσβαση στις βασικές κλάσεις " +"περισσότερες από μία φορές, ο δυναμικός αλγόριθμος γραμμικοποιεί τη σειρά " +"αναζήτησης με τρόπο που διατηρεί τη σειρά από αριστερά προς τα δεξιά-που " +"καθορίζεται σε κάθε κλάση, που καλεί κάθε γονέα μόνο μία φορά, και που είναι " +"μονότονος (που σημαίνει ότι μια κλάση μπορεί να γίνει υπό-κλάση χωρίς να " +"επηρεαστεί η σειρά προτεραιότητας των γονέων της). Συνολικά, αυτές οι " +"ιδιότητες καθιστούν δυνατό τον σχεδιασμό αξιόπιστων και επεκτάσιμων κλάσεων " +"με πολλαπλή κληρονομικότητα. Για περισσότερες λεπτομέρειες, ανατρέξτε στη " +"διεύθυνση https://www.python.org/download/releases/2.3/mro/." #: tutorial/classes.rst:674 msgid "Private Variables" @@ -1071,12 +1140,13 @@ msgid "" "a function, a method or a data member). It should be considered an " "implementation detail and subject to change without notice." msgstr "" -"Οι μεταβλητές στιγμιοτύπου \"Private\" στις οποίες δεν είναι δυνατή η πρόσβαση εκτός από το εσωτερικό ενός " -"αντικειμένου,δεν υπάρχουν στην Python. Ωστόσο, υπάρχει μια σύμβαση που ακολουθείται " -"από τον περισσότερο Python κώδικα: ένα όνομα με πρόθεμα κάτω παύλα (π.χ. " -"``_spam``) θα πρέπει να αντιμετωπίζεται ως μη δημόσιο μέρος του API " -"(είτε πρόκειται για συνάρτηση,μέθοδο ή μέλος δεδομένων). Θα πρέπει να θεωρείται ως " -"λεπτομέρεια υλοποίησης και υπόκειται σε αλλαγές χωρίς προειδοποίηση. " +"Οι μεταβλητές στιγμιοτύπου \"Private\" στις οποίες δεν είναι δυνατή η " +"πρόσβαση εκτός από το εσωτερικό ενός αντικειμένου,δεν υπάρχουν στην Python. " +"Ωστόσο, υπάρχει μια σύμβαση που ακολουθείται από τον περισσότερο Python " +"κώδικα: ένα όνομα με πρόθεμα κάτω παύλα (π.χ. ``_spam``) θα πρέπει να " +"αντιμετωπίζεται ως μη δημόσιο μέρος του API (είτε πρόκειται για συνάρτηση," +"μέθοδο ή μέλος δεδομένων). Θα πρέπει να θεωρείται ως λεπτομέρεια υλοποίησης " +"και υπόκειται σε αλλαγές χωρίς προειδοποίηση. " #: tutorial/classes.rst:686 msgid "" @@ -1089,22 +1159,25 @@ msgid "" "stripped. This mangling is done without regard to the syntactic position of " "the identifier, as long as it occurs within the definition of a class." msgstr "" -"Δεδομένου ότι υπάρχει μια έγκυρη περίπτωση χρήσης για ιδιωτικά μέλη της κλάσης (δηλαδή για να αποφευχθούν " -"συγκρούσεις ονομάτων με ονόματα που ορίζονται από υποκλάσεις), υπάρχει περιορισμένη " -"υποστήριξη για έναν τέτοιο μηχανισμό, που ονομάζεται :dfn:`name mangling`. Οποιοδήποτε αναγνωριστικό " -"της φόρμας ``__spam`` (τουλάχιστον δύο προπορευόμενες κάτω παύλες, το πολύ μια " -"στη συνέχεια κάτω παύλα) αντικαθίσταται με κείμενο με το ``_classname__spam``, όπου το " -"``classname`` είναι το όνομα της τρέχουσας τάξης με την πρώτη υπογράμμιση " -"stripped. Αυτό το mangling γίνεται χωρίς να λαμβάνεται υπόψη η συντακτική θέση του " -"του αναγνωριστικού, αρκεί να εμφανίζεται εντός του ορισμού μιας κλάσης." +"Δεδομένου ότι υπάρχει μια έγκυρη περίπτωση χρήσης για ιδιωτικά μέλη της " +"κλάσης (δηλαδή για να αποφευχθούν συγκρούσεις ονομάτων με ονόματα που " +"ορίζονται από υποκλάσεις), υπάρχει περιορισμένη υποστήριξη για έναν τέτοιο " +"μηχανισμό, που ονομάζεται :dfn:`name mangling`. Οποιοδήποτε αναγνωριστικό " +"της φόρμας ``__spam`` (τουλάχιστον δύο προπορευόμενες κάτω παύλες, το πολύ " +"μια στη συνέχεια κάτω παύλα) αντικαθίσταται με κείμενο με το " +"``_classname__spam``, όπου το ``classname`` είναι το όνομα της τρέχουσας " +"τάξης με την πρώτη υπογράμμιση stripped. Αυτό το mangling γίνεται χωρίς να " +"λαμβάνεται υπόψη η συντακτική θέση του του αναγνωριστικού, αρκεί να " +"εμφανίζεται εντός του ορισμού μιας κλάσης." #: tutorial/classes.rst:695 msgid "" "Name mangling is helpful for letting subclasses override methods without " "breaking intraclass method calls. For example::" msgstr "" -"Η παραβίαση ονομάτων είναι χρήσιμη για να επιτρέπεται στις υποκλάσεις να παρακάμπτουν μεθόδους χωρίς " -"να διακόπτουν τις κλήσεις μεθόδων ενδοκλάσεων. Για παράδειγμα::" +"Η παραβίαση ονομάτων είναι χρήσιμη για να επιτρέπεται στις υποκλάσεις να " +"παρακάμπτουν μεθόδους χωρίς να διακόπτουν τις κλήσεις μεθόδων ενδοκλάσεων. " +"Για παράδειγμα::" #: tutorial/classes.rst:717 msgid "" @@ -1113,10 +1186,10 @@ msgid "" "the ``Mapping`` class and ``_MappingSubclass__update`` in the " "``MappingSubclass`` class respectively." msgstr "" -"Το παραπάνω παράδειγμα θα λειτουργούσε ακόμα και αν το ``MappingSubclass`` εισήγαγε ένα " -"αναγνωριστικό ``__update`` αφού αντικαταστάθηκε με το ``_Mapping__update`` στην " -"κλάση ``Mapping`` και με το ``_MappingSubclass__update`` στη " -"κλάση ``MappingSubclass`` αντίστοιχα." +"Το παραπάνω παράδειγμα θα λειτουργούσε ακόμα και αν το ``MappingSubclass`` " +"εισήγαγε ένα αναγνωριστικό ``__update`` αφού αντικαταστάθηκε με το " +"``_Mapping__update`` στην κλάση ``Mapping`` και με το " +"``_MappingSubclass__update`` στη κλάση ``MappingSubclass`` αντίστοιχα." #: tutorial/classes.rst:722 msgid "" @@ -1125,10 +1198,11 @@ msgid "" "private. This can even be useful in special circumstances, such as in the " "debugger." msgstr "" -"Λάβετε υπόψη ότι οι κανόνες παραβίασης έχουν σχεδιαστεί κυρίως για την αποφυγή ατυχημάτων.Εξακολουθεί " -"να είναι δυνατή η πρόσβαση ή η τροποποίηση μιας μεταβλητής που θεωρείται " -"ιδιωτική. Αυτό μπορεί να είναι χρήσιμο ακόμη και σε ειδικές περιπτώσεις, όπως στο " -"πρόγραμμα εντοπισμού σφαλμάτων(debugger)." +"Λάβετε υπόψη ότι οι κανόνες παραβίασης έχουν σχεδιαστεί κυρίως για την " +"αποφυγή ατυχημάτων.Εξακολουθεί να είναι δυνατή η πρόσβαση ή η τροποποίηση " +"μιας μεταβλητής που θεωρείται ιδιωτική. Αυτό μπορεί να είναι χρήσιμο ακόμη " +"και σε ειδικές περιπτώσεις, όπως στο πρόγραμμα εντοπισμού " +"σφαλμάτων(debugger)." #: tutorial/classes.rst:726 msgid "" @@ -1139,11 +1213,12 @@ msgid "" "applies to ``getattr()``, ``setattr()`` and ``delattr()``, as well as when " "referencing ``__dict__`` directly." msgstr "" -"Σημειώστε ότι ο κώδικας που μεταβιβάστηκε στο ``exec()`` ή στο ``eval()`` δεν θεωρεί ότι το " -"το όνομα κλάσης της κλάσης επίκλησης να είναι η τρέχουσα κλάση. Αυτό είναι παρόμοιο με " -"το αποτέλεσμα της ``καθολικής`` δήλωσης , το αποτέλεσμα της οποίας επίσης " -"περιορίζεται στον κώδικα που έχει μεταγλωττιστεί μαζί(byte-compiled). Ο ίδιος περιορισμός " -"ισχύει για τα ``getattr()``, ``setattr()`` και ``delattr()``, καθώς και όταν γίνεται " +"Σημειώστε ότι ο κώδικας που μεταβιβάστηκε στο ``exec()`` ή στο ``eval()`` " +"δεν θεωρεί ότι το το όνομα κλάσης της κλάσης επίκλησης να είναι η τρέχουσα " +"κλάση. Αυτό είναι παρόμοιο με το αποτέλεσμα της ``καθολικής`` δήλωσης , το " +"αποτέλεσμα της οποίας επίσης περιορίζεται στον κώδικα που έχει " +"μεταγλωττιστεί μαζί(byte-compiled). Ο ίδιος περιορισμός ισχύει για τα " +"``getattr()``, ``setattr()`` και ``delattr()``, καθώς και όταν γίνεται " "αναφορά απευθείας στο ``__dict__``." #: tutorial/classes.rst:737 @@ -1156,9 +1231,10 @@ msgid "" "or C \"struct\", bundling together a few named data items. The idiomatic " "approach is to use :mod:`dataclasses` for this purpose::" msgstr "" -"Μερικές φορές είναι χρήσιμο να έχετε έναν τύπο δεδομένων παρόμοιο με τον Pascal \"record\" " -"ή C \"struct\", ομαδοποιώντας μερικά επώνυμα στοιχεία δεδομένων. Η ιδιωματική " -"προσέγγιση είναι η χρήση :mod:`dataclasses` για αυτόν τον σκοπό::" +"Μερικές φορές είναι χρήσιμο να έχετε έναν τύπο δεδομένων παρόμοιο με τον " +"Pascal \"record\" ή C \"struct\", ομαδοποιώντας μερικά επώνυμα στοιχεία " +"δεδομένων. Η ιδιωματική προσέγγιση είναι η χρήση :mod:`dataclasses` για " +"αυτόν τον σκοπό::" #: tutorial/classes.rst:759 msgid "" @@ -1169,11 +1245,12 @@ msgid "" "and :meth:`~io.TextIOBase.readline` that get the data from a string buffer " "instead, and pass it as an argument." msgstr "" -"Ένα κομμάτι κώδικα Python που αναμένει έναν συγκεκριμένο αφηρημένο τύπο δεδομένων μπορεί " -"συχνά να περάσει σε μια κλάση που μιμείται τις μεθόδους αυτού του τύπου δεδομένων. " -"Για παράδειγμα, εάν έχετε μια συνάρτηση που μορφοποιεί ορισμένα δεδομένα από ένα " -"αντικείμενο αρχείου, μπορείτε να ορίσετε μια κλάση με μεθόδους :meth:`~io.TextIOBase.read` " -"και :meth:`~io.TextIOBase.readline` που λαμβάνουν τα δεδομένα από ένα buffer συμβολοσειρών " +"Ένα κομμάτι κώδικα Python που αναμένει έναν συγκεκριμένο αφηρημένο τύπο " +"δεδομένων μπορεί συχνά να περάσει σε μια κλάση που μιμείται τις μεθόδους " +"αυτού του τύπου δεδομένων. Για παράδειγμα, εάν έχετε μια συνάρτηση που " +"μορφοποιεί ορισμένα δεδομένα από ένα αντικείμενο αρχείου, μπορείτε να " +"ορίσετε μια κλάση με μεθόδους :meth:`~io.TextIOBase.read` και :meth:`~io." +"TextIOBase.readline` που λαμβάνουν τα δεδομένα από ένα buffer συμβολοσειρών " "αντ' αυτού, και περάστε το ως όρισμα." #: tutorial/classes.rst:771 @@ -1183,10 +1260,11 @@ msgid "" "meth:`!m`, and :attr:`m.__func__ ` is the :ref:`function " "object ` corresponding to the method." msgstr "" -":ref:`Instance method objects ` έχουν επίσης χαρακτηριστικά: :" -"attr:`m.__self__ ` είναι το αντικείμενο παρουσίας με τη μέθοδο :" -"meth:`!m`, και :attr:`m.__func__ ` είναι το :ref:`αντικείμενο συνάρτησης " -"` που αντιστοιχεί στη μέθοδο." +":ref:`Instance method objects ` έχουν επίσης " +"χαρακτηριστικά: :attr:`m.__self__ ` είναι το αντικείμενο " +"παρουσίας με τη μέθοδο :meth:`!m`, και :attr:`m.__func__ ` " +"είναι το :ref:`αντικείμενο συνάρτησης ` που αντιστοιχεί " +"στη μέθοδο." #: tutorial/classes.rst:781 msgid "Iterators" @@ -1197,8 +1275,8 @@ msgid "" "By now you have probably noticed that most container objects can be looped " "over using a :keyword:`for` statement::" msgstr "" -"Μέχρι τώρα πιθανότατα έχετε παρατηρήσει ότι τα περισσότερα αντικείμενα container μπορούν να επαναληφθούν " -"χρησιμοποιώντας μια δήλωση :keyword:`for`::" +"Μέχρι τώρα πιθανότατα έχετε παρατηρήσει ότι τα περισσότερα αντικείμενα " +"container μπορούν να επαναληφθούν χρησιμοποιώντας μια δήλωση :keyword:`for`::" #: tutorial/classes.rst:797 msgid "" @@ -1213,14 +1291,15 @@ msgid "" "func:`next` built-in function; this example shows how it all works::" msgstr "" "Αυτό το στυλ πρόσβασης είναι σαφές, συνοπτικό και βολικό. Η χρήση των " -"Iterators διαπερνά και ενοποιεί την Python. Στο παρασκήνιο, η δήλωση :keyword:" -"`for` καλεί :func:`iter` στο αντικείμενο container. Η συνάρτηση " +"Iterators διαπερνά και ενοποιεί την Python. Στο παρασκήνιο, η δήλωση :" +"keyword:`for` καλεί :func:`iter` στο αντικείμενο container. Η συνάρτηση " "επιστρέφει ένα αντικείμενο iterator που ορίζει τη μέθοδο :meth:`~iterator." -"__next__` η οποία έχει πρόσβαση σε στοιχεία στο container ένα κάθε φορά. Όταν " -"δεν υπάρχουν άλλα στοιχεία, το :meth:`~iterator.__next__` δημιουργεί μια :exc:" -"`StopIteration` εξαίρεση που λέει τον βρόχο :keyword:`!for` να " -"τερματιστεί. Μπορείτε να καλέσετε τη μέθοδο :meth:`~iterator.__next__` χρησιμοποιώντας την " -"ενσωματωμένη συνάρτηση :func:`next`. Αυτό το παράδειγμα δείχνει πώς λειτουργούν όλα::" +"__next__` η οποία έχει πρόσβαση σε στοιχεία στο container ένα κάθε φορά. " +"Όταν δεν υπάρχουν άλλα στοιχεία, το :meth:`~iterator.__next__` δημιουργεί " +"μια :exc:`StopIteration` εξαίρεση που λέει τον βρόχο :keyword:`!for` να " +"τερματιστεί. Μπορείτε να καλέσετε τη μέθοδο :meth:`~iterator.__next__` " +"χρησιμοποιώντας την ενσωματωμένη συνάρτηση :func:`next`. Αυτό το παράδειγμα " +"δείχνει πώς λειτουργούν όλα::" #: tutorial/classes.rst:822 msgid "" @@ -1230,11 +1309,11 @@ msgid "" "the class defines :meth:`!__next__`, then :meth:`!__iter__` can just return " "``self``::" msgstr "" -"Έχοντας δει τους μηχανισμούς πίσω από το πρωτόκολλο iterator, είναι εύκολο να προσθέσετε " -"συμπεριφορά iterator στις κλάσεις σας. Ορίστε μια μέθοδο :meth:`~container.__iter__` " -"που επιστρέφει ένα αντικείμενο με μια μέθοδο :meth:`~iterator.__next__`. Εάν " -"η κλάση ορίζει :meth:`!__next__`, τότε το :meth:`!__iter__` μπορεί απλώς να επιστρέψει " -"``self``::" +"Έχοντας δει τους μηχανισμούς πίσω από το πρωτόκολλο iterator, είναι εύκολο " +"να προσθέσετε συμπεριφορά iterator στις κλάσεις σας. Ορίστε μια μέθοδο :meth:" +"`~container.__iter__` που επιστρέφει ένα αντικείμενο με μια μέθοδο :meth:" +"`~iterator.__next__`. Εάν η κλάση ορίζει :meth:`!__next__`, τότε το :meth:`!" +"__iter__` μπορεί απλώς να επιστρέψει ``self``::" #: tutorial/classes.rst:859 msgid "Generators" @@ -1249,12 +1328,13 @@ msgid "" "the data values and which statement was last executed). An example shows " "that generators can be trivially easy to create::" msgstr "" -":term:`Generators ` είναι ένα απλό και ισχυρό εργαλείο για τη δημιουργία " -"iterators. Είναι γραμμένες σαν κανονικές συναρτήσεις αλλά χρησιμοποιούν τη :keyword:" -"`yield` όποτε θέλουν να επιστρέψουν δεδομένα. Κάθε φορά που καλείται :func:`next` " -"σε αυτό, ο generator συνεχίζει από εκεί που σταμάτησε (θυμάται όλες τις " -"τιμές δεδομένων και ποια δήλωση εκτελέστηκε τελευταία). Ένα παράδειγμα δείχνει " -"ότι οι generators μπορεί να είναι ασήμαντα εύκολο να δημιουργηθούν::" +":term:`Generators ` είναι ένα απλό και ισχυρό εργαλείο για τη " +"δημιουργία iterators. Είναι γραμμένες σαν κανονικές συναρτήσεις αλλά " +"χρησιμοποιούν τη :keyword:`yield` όποτε θέλουν να επιστρέψουν δεδομένα. Κάθε " +"φορά που καλείται :func:`next` σε αυτό, ο generator συνεχίζει από εκεί που " +"σταμάτησε (θυμάται όλες τις τιμές δεδομένων και ποια δήλωση εκτελέστηκε " +"τελευταία). Ένα παράδειγμα δείχνει ότι οι generators μπορεί να είναι " +"ασήμαντα εύκολο να δημιουργηθούν::" #: tutorial/classes.rst:882 msgid "" @@ -1263,10 +1343,10 @@ msgid "" "compact is that the :meth:`~iterator.__iter__` and :meth:`~generator." "__next__` methods are created automatically." msgstr "" -"Οτιδήποτε μπορεί να γίνει με generators μπορεί να γίνει και με iterators " -"που βασίζονται σε κλάσεις, όπως περιγράφεται στην προηγούμενη ενότητα. Αυτό που κάνει τους generators τόσο " -"συμπαγείς είναι ότι οι μέθοδοι :meth:`~iterator.__iter__` και " -":meth:`~.generator__next__` δημιουργούνται αυτόματα." +"Οτιδήποτε μπορεί να γίνει με generators μπορεί να γίνει και με iterators που " +"βασίζονται σε κλάσεις, όπως περιγράφεται στην προηγούμενη ενότητα. Αυτό που " +"κάνει τους generators τόσο συμπαγείς είναι ότι οι μέθοδοι :meth:`~iterator." +"__iter__` και :meth:`~.generator__next__` δημιουργούνται αυτόματα." #: tutorial/classes.rst:887 msgid "" @@ -1275,10 +1355,10 @@ msgid "" "and much more clear than an approach using instance variables like ``self." "index`` and ``self.data``." msgstr "" -"Ένα άλλο βασικό χαρακτηριστικό είναι ότι οι τοπικές μεταβλητές και η κατάσταση εκτέλεσης " -"αποθηκεύονται αυτόματα μεταξύ των κλήσεων. Αυτό έκανε τη συνάρτηση πιο εύκολη στην γραφή " -"και πολύ πιο ξεκάθαρη από μια προσέγγιση που χρησιμοποιεί μεταβλητές παράδειγμα όπως ``self." -"index`` και ``self.data``." +"Ένα άλλο βασικό χαρακτηριστικό είναι ότι οι τοπικές μεταβλητές και η " +"κατάσταση εκτέλεσης αποθηκεύονται αυτόματα μεταξύ των κλήσεων. Αυτό έκανε τη " +"συνάρτηση πιο εύκολη στην γραφή και πολύ πιο ξεκάθαρη από μια προσέγγιση που " +"χρησιμοποιεί μεταβλητές παράδειγμα όπως ``self.index`` και ``self.data``." #: tutorial/classes.rst:892 msgid "" @@ -1287,10 +1367,11 @@ msgid "" "combination, these features make it easy to create iterators with no more " "effort than writing a regular function." msgstr "" -"Εκτός από την αυτόματη δημιουργία μεθόδου και την αποθήκευση της κατάστασης του προγράμματος, όταν " -"οι generators τερματίζονται, εγείρουν αυτόματα την εξαίρεση :exc:`StopIteration`. " -"Σε συνδυασμό, αυτά τα χαρακτηριστικά καθιστούν εύκολη τη δημιουργία επαναλήψεων χωρίς περισσότερη " -"προσπάθεια από τη σύνταξη μιας κανονικής συνάρτησης." +"Εκτός από την αυτόματη δημιουργία μεθόδου και την αποθήκευση της κατάστασης " +"του προγράμματος, όταν οι generators τερματίζονται, εγείρουν αυτόματα την " +"εξαίρεση :exc:`StopIteration`. Σε συνδυασμό, αυτά τα χαρακτηριστικά " +"καθιστούν εύκολη τη δημιουργία επαναλήψεων χωρίς περισσότερη προσπάθεια από " +"τη σύνταξη μιας κανονικής συνάρτησης." #: tutorial/classes.rst:901 msgid "Generator Expressions" @@ -1305,11 +1386,12 @@ msgid "" "compact but less versatile than full generator definitions and tend to be " "more memory friendly than equivalent list comprehensions." msgstr "" -"Ορισμένοι απλοί generators μπορούν να κωδικοποιηθούν συνοπτικά ως εκφράσεις χρησιμοποιώντας μια σύνταξη " -"παρόμοια με τις list comprehensions, αλλά με παρενθέσεις αντί για αγκύλες. " -"Αυτές οι εκφράσεις έχουν σχεδιαστεί για καταστάσεις όπου ο generator " -"χρησιμοποιείται αμέσως από μια περικλείουσα συνάρτηση. Οι εκφράσεις generator είναι πιο " -"συμπαγείς αλλά λιγότερο ευέλικτες από τους ορισμούς πλήρους generator και τείνουν να είναι " +"Ορισμένοι απλοί generators μπορούν να κωδικοποιηθούν συνοπτικά ως εκφράσεις " +"χρησιμοποιώντας μια σύνταξη παρόμοια με τις list comprehensions, αλλά με " +"παρενθέσεις αντί για αγκύλες. Αυτές οι εκφράσεις έχουν σχεδιαστεί για " +"καταστάσεις όπου ο generator χρησιμοποιείται αμέσως από μια περικλείουσα " +"συνάρτηση. Οι εκφράσεις generator είναι πιο συμπαγείς αλλά λιγότερο " +"ευέλικτες από τους ορισμούς πλήρους generator και τείνουν να είναι " "περισσότερο φιλικό προς τη μνήμη από αντίστοιχα list comprehensions." #: tutorial/classes.rst:910 @@ -1329,12 +1411,13 @@ msgid "" "abstraction of namespace implementation, and should be restricted to things " "like post-mortem debuggers." msgstr "" -"Εκτός από ένα πράγμα. Τα αντικείμενα του module έχουν ένα μυστικό χαρακτηριστικό μόνο για ανάγνωση που " -"καλείται :attr:`~object.__dict__` το οποίο επιστρέφει το λεξικό που χρησιμοποιείται για την " -"υλοποίηση του χώρου ονομάτων του module.Το όνομα :attr:`~object.__dict__` είναι ένα " -"χαρακτηριστικό αλλά όχι καθολικό όνομα. Προφανώς, η χρήση αυτού παραβιάζει την " -"αφαίρεση υλοποίησης χώρου ονομάτων και θα πρέπει να περιορίζεται σε πράγματα " -"όπως τα ύστερα προγράμματα εντοπισμού σφαλμάτων." +"Εκτός από ένα πράγμα. Τα αντικείμενα του module έχουν ένα μυστικό " +"χαρακτηριστικό μόνο για ανάγνωση που καλείται :attr:`~object.__dict__` το " +"οποίο επιστρέφει το λεξικό που χρησιμοποιείται για την υλοποίηση του χώρου " +"ονομάτων του module.Το όνομα :attr:`~object.__dict__` είναι ένα " +"χαρακτηριστικό αλλά όχι καθολικό όνομα. Προφανώς, η χρήση αυτού παραβιάζει " +"την αφαίρεση υλοποίησης χώρου ονομάτων και θα πρέπει να περιορίζεται σε " +"πράγματα όπως τα ύστερα προγράμματα εντοπισμού σφαλμάτων." #: tutorial/classes.rst:347 msgid "object"