Τα Python modules είναι αρχεία που περιέχουν κώδικα γραμμένο σε Python. Ένα module μπορεί να περιέχει ορισμένες συναρτήσεις, κλάσεις και μεταβλητές που μπορούν να εισαχθούν και να χρησιμοποιηθούν σε άλλα προγράμματα Python.
Για να δημιουργήσετε ένα module, απλά αποθηκεύστε τον κώδικα Python σε ένα αρχείο με την επέκταση .py. Αυτό το αρχείο μπορεί να περιέχει οποιονδήποτε έγκυρο κώδικα Python, συμπεριλαμβανομένων των δηλώσεων συναρτήσεων, κλάσεων, μεταβλητών και άλλων στοιχείων της γλώσσας.
Όταν χρειάζεστε τις λειτουργίες αυτού του module σε άλλο πρόγραμμα Python, μπορείτε να το εισάγετε χρησιμοποιώντας τη δήλωση import
. Με αυτόν τον τρόπο μπορείτε να αξιοποιήσετε τις συναρτήσεις, τις κλάσεις και τις μεταβλητές που ορίστηκαν στο module στο πρόγραμμά σας.
Για παράδειγμα, ας δημιουργήσουμε ένα module με όνομα my_module.py:
# my_module.py def greeting(name): # Συνάρτηση που εκτυπώνει ένα γεια χαιρετισμό με το όνομα που περνάμε ως παράμετρο print("Hello, " + name) # Εκτύπωση του μηνύματος "Hello, " ακολουθούμενο από το όνομα που περνάμε ως παράμετρο
Ο κώδικας προσδιορίζει μια συνάρτηση με το όνομα greeting
που δέχεται ένα όρισμα name
. Η συνάρτηση εκτυπώνει ένα γεία χαιρετισμό, συνδυάζοντας το κείμενο “Hello, ” με την τιμή της παραμέτρου name
. Κατά την εκτέλεση της συνάρτησης greeting("John")
, θα εμφανιστεί το μήνυμα “Hello, John” στην έξοδο.
Για να χρησιμοποιήσετε ένα module που έχετε δημιουργήσει, χρησιμοποιήστε την εντολή import, ακολουθούμενη από το όνομα του module (χωρίς την επέκταση .py):
import my_module # Εισαγωγή module με όνομα my_module my_module.greeting("John") # Κλήση της συνάρτησης greeting από το my_module, περνώντας το όνομα "John" ως όρισμα
Ο κώδικας αυτός εισάγει ένα module με όνομα my_module
και καλεί τη συνάρτηση greeting
από αυτό το αρθρώμα, περνώντας το όνομα “John” ως όρισμα. Η συνάρτηση greeting
εκτυπώνει ένα μήνυμα υποδοχής με το όνομα που περνιέται ως όρισμα. Έτσι, ο κώδικας αυτός εκτυπώνει το μήνυμα υποδοχής “Hello, John!” ή κάτι παρόμοιο, ανάλογα με την υλοποίηση της συνάρτησης greeting
στο αρθρώμα my_module
.
[adinserter block=”2″]
Μπορείτε να εισάγετε μόνο τις συναρτήσεις που χρειάζεστε από ένα module, χρησιμοποιώντας τη δήλωση from … import:
# my_module.py def greeting(name): # Συνάρτηση για τον χαιρετισμό με το όνομα name print("Hello, " + name) def farewell(name): # Συνάρτηση για τον αποχαιρετισμό με το όνομα name print("Goodbye, " + name)
Ο κώδικας που δίνεται περιέχει δύο συναρτήσεις: greeting(name)
και farewell(name)
.
Η συνάρτηση greeting(name)
εκτυπώνει το μήνυμα “Hello, ” ακολουθούμενο από το όνομα που περνάει ως όρισμα. Έτσι, όταν καλείται η συνάρτηση με ένα όνομα, π.χ. greeting("Alice")
, θα εκτυπωθεί το μήνυμα “Hello, Alice”.
Η συνάρτηση farewell(name)
εκτυπώνει το μήνυμα “Goodbye, ” ακολουθούμενο από το όνομα που περνάει ως όρισμα. Έτσι, όταν καλείται η συνάρτηση με ένα όνομα, π.χ. farewell("Bob")
, θα εκτυπωθεί το μήνυμα “Goodbye, Bob”.
Οι δύο συναρτήσεις αυτές παρέχουν τη δυνατότητα χαιρετισμού και αποχαιρετισμού, αντίστοιχα, με τη χρήση του ονόματος που περνιέται ως όρισμα.
# Κύριος κώδικας from my_module import greeting greeting("John")
Ο παραπάνω κώδικας εισάγει τη συνάρτηση greeting
από το αρχείο my_module.py
χρησιμοποιώντας τη δήλωση from my_module import greeting
.
Στη συνέχεια, καλείται η συνάρτηση greeting("John")
, η οποία εκτελεί τον κώδικα της συνάρτησης greeting
από το αρχείο my_module.py
με το όρισμα "John"
. Επομένως, θα εκτυπωθεί το μήνυμα “Hello, John”.
Μπορείτε επίσης να εισάγετε πολλαπλές συναρτήσεις ταυτόχρονα, διαχωρίζοντάς τες με κόμμα:
from my_module import greeting, farewell # Καλούμε τη συνάρτηση greeting με το όρισμα "John" greeting("John") # Καλούμε τη συνάρτηση farewell με το όρισμα "John" farewell("John")
Ο κώδικας εισάγει τις συναρτήσεις greeting
και farewell
από το αρχείο my_module
. Στη συνέχεια, καλεί τη συνάρτηση greeting
με όρισμα το string “John”, προκαλώντας την εκτύπωση του μηνύματος “Hello, John”. Έπειτα, καλεί τη συνάρτηση farewell
με όρισμα επίσης το string “John”, εκτυπώνοντας το μήνυμα “Goodbye, John”. Ο κώδικας χρησιμοποιεί τις συναρτήσεις από το my_module
για να καλησπερίσει και να αποχαιρετίσει τον άτομο με όνομα “John”.
Μπορείτε να αλλάξετε το όνομα μιας συνάρτησης κατά την εισαγωγή της, χρησιμοποιώντας τη δήλωση as:
# my_module.py def greeting(name): # Εκτύπωση καλωσορίσματος print("Hello, " + name) def farewell(name): # Εκτύπωση αποχαιρετισμού print("Goodbye, " + name) # Κύριος κώδικας from my_module import greeting as gr gr("John")
Ο κώδικας προσπαθεί να εισάγει τη συνάρτηση greeting
από το αρχείο my_module.py
και να την αναθέσει στο όνομα gr
. Έπειτα, καλεί τη συνάρτηση gr
με το όρισμα "John"
. Ο σκοπός του κώδικα είναι να χαιρετίσει τον χρήστη με το όνομα “John” χρησιμοποιώντας τη συνάρτηση greeting
από το αρχείο my_module.py
.
[adinserter block=”3″]
Το module μπορεί να περιέχει συναρτήσεις, όπως έχουμε ήδη περιγράψει, αλλά και μεταβλητές όλων των τύπων (λίστες, λεξικά, αντικείμενα κ.λπ.):
# my_module.py def greeting(name): # Εκτύπωση καλωσορίσματος print("Hello, " + name) def farewell(name): # Εκτύπωση αποχαιρετισμού print("Goodbye, " + name) age = 25 # Ορισμός της μεταβλητής age με την τιμή 25 names = ["Γιάννης", "Ελένη", "Νίκος"] # Ορισμός της λίστας names με τα ονόματα
Ο παραπάνω κώδικας ορίζει μια μονάδα με το όνομα my_module.py
που περιέχει δύο συναρτήσεις και δύο μεταβλητές.
Η συνάρτηση greeting(name)
εκτυπώνει ένα μήνυμα καλωσορίσματος, προσθέτοντας το όνομα που περνάμε ως παράμετρο στη λέξη “Hello”. Για παράδειγμα, αν καλέσουμε τη συνάρτηση greeting("John")
, θα εκτυπωθεί το μήνυμα “Hello, John”.
Η συνάρτηση farewell(name)
εκτυπώνει ένα μήνυμα αποχαιρετισμού, προσθέτοντας το όνομα που περνάμε ως παράμετρο στη λέξη “Goodbye”. Παρόμοια με την προηγούμενη συνάρτηση, αν καλέσουμε τη συνάρτηση farewell("Mary")
, θα εκτυπωθεί το μήνυμα “Goodbye, Mary”.
Η μεταβλητή age
ορίζεται με την τιμή 25, ενώ η μεταβλητή names
είναι μια λίστα που περιέχει τρία ονόματα: “Γιάννης”, “Ελένη” και “Νίκος”.
Μπορείτε να εισάγετε τις μεταβλητές από το module όπως εισάγετε και τις συναρτήσεις:
from my_module import age, names # Εκτύπωση της μεταβλητής age print(age) # Εμφανίζει: 25 # Εκτύπωση της λίστας names print(names) # Εμφανίζει: ["Γιάννης", "Ελένη", "Νίκος"]
Η πρώτη εντολή εισάγει τη μεταβλητή age
από το my_module
, ενώ η δεύτερη εισάγει τη λίστα names
από το ίδιο module. Στη συνέχεια, οι δύο μεταβλητές εκτυπώνονται στην οθόνη. Η πρώτη εκτύπωση θα εμφανίσει την τιμή 25
, ενώ η δεύτερη εκτύπωση θα εμφανίσει τη λίστα ["Γιάννης", "Ελένη", "Νίκος"]
.
Ή μπορείτε να εισάγετε ολόκληρο το module και να χρησιμοποιήσετε τις μεταβλητές με το όνομα του module ως πρόθεμα:
import my_module print(my_module.age) # Εμφανίζει: 25 print(my_module.names) # Εμφανίζει: ["Γιάννης", "Ελένη", "Νίκος"]
Ο κώδικας παραπάνω εισάγει το my_module
, ένα προσαρτημένο αρχείο με κώδικα Python, και στη συνέχεια εκτελεί δύο εντολές εκτύπωσης.
Η πρώτη εντολή print(my_module.age)
εκτυπώνει την τιμή της μεταβλητής age
που ορίζεται στο my_module
. Στο παράδειγμα, η τιμή της age
είναι 25, οπότε η έξοδος θα είναι 25
.
Η δεύτερη εντολή print(my_module.names)
εκτυπώνει την τιμή της μεταβλητής names
που ορίζεται στο my_module
. Στο παράδειγμα, η τιμή της names
είναι μια λίστα που περιέχει τα στοιχεία "Γιάννης"
, "Ελένη"
και "Νίκος"
, οπότε η έξοδος θα είναι ["Γιάννης", "Ελένη", "Νίκος"]
.
Συνολικά, ο κώδικας εκτυπώνει τις τιμές των μεταβλητών age
και names
που έχουν οριστεί στο my_module
.
Ας δημιουργήσουμε ένα module με ένα λεξικό και στη συνέχεια θα το εισάγουμε σε ένα άλλο αρχείο Python.
Δημιουργήστε ένα αρχείο Python με όνομα my_dictionary_module.py
και προσθέστε τον ακόλουθο κώδικα:
# my_dictionary_module.py # Δημιουργία ενός λεξικού με πληροφορίες για ένα άτομο person = { "name": "Γιάννης", # Κλειδί: "name", Τιμή: "Γιάννης" "age": 30, # Κλειδί: "age", Τιμή: 30 "city": "Αθήνα" # Κλειδί: "city", Τιμή: "Αθήνα" }
Ο κώδικας δημιουργεί ένα λεξικό με το όνομα “person” που περιέχει πληροφορίες για ένα άτομο. Το λεξικό περιλαμβάνει τρία κλειδιά:
- “name” με την τιμή “Γιάννης”
- “age” με την τιμή 30
- “city” με την τιμή “Αθήνα”
Κάθε κλειδί αντιστοιχεί σε μια συγκεκριμένη πληροφορία για το άτομο, όπως το όνομά του, η ηλικία του και η πόλη που ζει. Ο κώδικας δημιουργεί αυτήν τη δομή δεδομένων και αποθηκεύει το λεξικό στη μεταβλητή “person” για περαιτέρω χρήση στο πρόγραμμα.
Τώρα, δημιουργήστε ένα νέο αρχείο Python και εισάγετε το λεξικό από το my_dictionary_module.py
:
from my_dictionary_module import person print(person) # Εμφανίζει: {"name": "Γιάννης", "age": 30, "city": "Αθήνα"} print(person["name"]) # Εμφανίζει: Γιάννης print(person["age"]) # Εμφανίζει: 30 print(person["city"]) # Εμφανίζει: Αθήνα
Ο κώδικας που δόθηκε εκτυπώνει πληροφορίες για ένα πρόσωπο από ένα λεξικό με όνομα person
. Ακολουθούν οι λεπτομέρειες των εκφράσεων που χρησιμοποιούνται:
- Η εντολή
print(person)
εκτυπώνει ολόκληρο το λεξικόperson
, το οποίο περιέχει τρία ζεύγη κλειδιού-τιμής:"name": "Γιάννης"
,"age": 30
και"city": "Αθήνα"
. - Η εντολή
print(person["name"])
εκτυπώνει την τιμή που αντιστοιχεί στο κλειδί"name"
, δηλαδή το όνομα"Γιάννης"
. - Η εντολή
print(person["age"])
εκτυπώνει την τιμή που αντιστοιχεί στο κλειδί"age"
, δηλαδή τον αριθμό30
. - Η εντολή
print(person["city"])
εκτυπώνει την τιμή που αντιστοιχεί στο κλειδί"city"
, δηλαδή την πόλη"Αθήνα"
.
[adinserter block=”4″]
Έτσι, ο κώδικας παρουσιάζει πληροφορίες για ένα άτομο, όπως το όνομα, η ηλικία και η πόλη κατοικίας.
Με αυτόν τον τρόπο, μπορείτε να εισάγετε και να χρησιμοποιήσετε λεξικά από άλλα αρχεία Python.
Υπάρχουν αρκετά ενσωματωμένα modules στην Python, τα οποία μπορείτε να εισάγετε όποτε θέλετε.
Δείτε μερικά παραδείγματα ενσωματωμένων modules και πώς μπορείτε να τα εισάγετε:
import math print(math.sqrt(16)) # Εμφανίζει: 4.0 print(math.pi) # Εμφανίζει: 3.141592653589793 import random print(random.randint(1, 10)) # Εμφανίζει έναν τυχαίο ακέραιο από το 1 έως το 10 import datetime current_date = datetime.datetime.now() print(current_date) # Εμφανίζει την τρέχουσα ημερομηνία και ώρα import os print(os.getcwd()) # Εμφανίζει τον τρέχοντα φάκελο εργασίας
Ο κώδικας παρουσιάζει παραδείγματα χρήσης διάφορων βιβλιοθηκών της Python και εκτυπώνει κάποια αποτελέσματα. Ας αναλύσουμε τη λειτουργία του κώδικα γραμμή προς γραμμή:
import math
: Εισάγει τη βιβλιοθήκη math που παρέχει μαθηματικές συναρτήσεις και σταθερές.print(math.sqrt(16))
: Υπολογίζει την τετραγωνική ρίζα του αριθμού 16 χρησιμοποιώντας τη συνάρτησηsqrt()
από τη βιβλιοθήκη math και εκτυπώνει το αποτέλεσμα (4.0).print(math.pi)
: Εκτυπώνει την τιμή του π (περίπου 3.141592653589793) που παρέχεται από τη βιβλιοθήκη math.import random
: Εισάγει τη βιβλιοθήκη random που παρέχει συναρτήσεις για την παραγωγή τυχαίων αριθμών.print(random.randint(1, 10))
: Παράγει έναν τυχαίο ακέραιο αριθμό από το 1 έως το 10 χρησιμοποιώντας τη συνάρτησηrandint()
από τη βιβλιοθήκη random και τον εκτυπώνει.import datetime
: Εισάγει τη βιβλιοθήκη datetime που παρέχει συναρτήσεις για την εργασία με ημερομηνίες και ώρες.current_date = datetime.datetime.now()
: Αποθηκεύει στη μεταβλητήcurrent_date
την τρέχουσα ημερομηνία και ώρα χρησιμοποιώντας τη συνάρτησηnow()
της βιβλιοθήκης datetime.
print(current_date)
: Εκτυπώνει την τρέχουσα ημερομηνία και ώρα που αποθηκεύτηκε στη μεταβλητήcurrent_date
.import os
: Εισάγει τη βιβλιοθήκη os που παρέχει συναρτήσεις για την αλληλεπίδραση με το λειτουργικό σύστημα.print(os.getcwd())
: Εκτυπώνει τον τρέχοντα φάκελο εργασίας (τη διαδρομή του φακέλου) χρησιμοποιώντας τη συνάρτησηgetcwd()
από τη βιβλιοθήκη os.
Υπάρχουν πολλά άλλα ενσωματωμένα modules που μπορείτε να χρησιμοποιήσετε για να επεκτείνετε τις λειτουργίες του κώδικά σας. Μπορείτε να βρείτε μια πλήρη λίστα των ενσωματωμένων modules στην επίσημη τεκμηρίωση της Python:
Υπάρχει μια ενσωματωμένη συνάρτηση για να απαριθμήσετε όλα τα ονόματα συναρτήσεων (ή ονόματα μεταβλητών) σε ένα module. Η συνάρτηση dir():
import math # Εμφανίζει όλες τις συναρτήσεις και τις μεταβλητές που παρέχονται από το module math print(dir(math))
Ο κώδικας αυτός εισάγει το module math
και εμφανίζει όλες τις συναρτήσεις και τις μεταβλητές που παρέχονται από αυτό το module. Χρησιμοποιεί την ενσωματωμένη συνάρτηση dir()
για να επιστρέψει μια λίστα με τα ονόματα των στοιχείων που περιέχονται στο math
. Τέλος, η λίστα εκτυπώνεται στην οθόνη. Αυτό μας επιτρέπει να δούμε όλες τις διαθέσιμες συναρτήσεις και μεταβλητές που παρέχει το module math
και να τις χρησιμοποιήσουμε ανάλογα στον κώδικά μας.
Σημείωση: Η συνάρτηση dir() επιστρέφει επίσης ορισμένα ειδικά ονόματα που ξεκινούν και τελειώνουν με διπλές κάτω παύλες (π.χ. __name__
, __file__
κ.λπ.). Αυτά τα ονόματα αναφέρονται σε ειδικά χαρακτηριστικά του module και συνήθως δεν χρησιμοποιούνται σε καθημερινό προγραμματισμό.