5.6 Η έννοια του Module στην Python

Τα 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. Ακολουθούν οι λεπτομέρειες των εκφράσεων που χρησιμοποιούνται:

  1. Η εντολή print(person) εκτυπώνει ολόκληρο το λεξικό person, το οποίο περιέχει τρία ζεύγη κλειδιού-τιμής: "name": "Γιάννης", "age": 30 και "city": "Αθήνα".
  2. Η εντολή print(person["name"]) εκτυπώνει την τιμή που αντιστοιχεί στο κλειδί "name", δηλαδή το όνομα "Γιάννης".
  3. Η εντολή print(person["age"]) εκτυπώνει την τιμή που αντιστοιχεί στο κλειδί "age", δηλαδή τον αριθμό 30.
  4. Η εντολή 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 και εκτυπώνει κάποια αποτελέσματα. Ας αναλύσουμε τη λειτουργία του κώδικα γραμμή προς γραμμή:

  1. import math: Εισάγει τη βιβλιοθήκη math που παρέχει μαθηματικές συναρτήσεις και σταθερές.
  2. print(math.sqrt(16)): Υπολογίζει την τετραγωνική ρίζα του αριθμού 16 χρησιμοποιώντας τη συνάρτηση sqrt() από τη βιβλιοθήκη math και εκτυπώνει το αποτέλεσμα (4.0).
  3. print(math.pi): Εκτυπώνει την τιμή του π (περίπου 3.141592653589793) που παρέχεται από τη βιβλιοθήκη math.
  4. import random: Εισάγει τη βιβλιοθήκη random που παρέχει συναρτήσεις για την παραγωγή τυχαίων αριθμών.
  5. print(random.randint(1, 10)): Παράγει έναν τυχαίο ακέραιο αριθμό από το 1 έως το 10 χρησιμοποιώντας τη συνάρτηση randint() από τη βιβλιοθήκη random και τον εκτυπώνει.
  6. import datetime: Εισάγει τη βιβλιοθήκη datetime που παρέχει συναρτήσεις για την εργασία με ημερομηνίες και ώρες.
  7. current_date = datetime.datetime.now(): Αποθηκεύει στη μεταβλητή current_date την τρέχουσα ημερομηνία και ώρα χρησιμοποιώντας τη συνάρτηση now() της βιβλιοθήκης datetime.
  1. print(current_date): Εκτυπώνει την τρέχουσα ημερομηνία και ώρα που αποθηκεύτηκε στη μεταβλητή current_date.
  2. import os: Εισάγει τη βιβλιοθήκη os που παρέχει συναρτήσεις για την αλληλεπίδραση με το λειτουργικό σύστημα.
  3. 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 και συνήθως δεν χρησιμοποιούνται σε καθημερινό προγραμματισμό.

7 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων