Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

4.5 Εισαγωγή Ενότητας (Module) στη Python: Μια Βαθύτερη Ματιά

Στην Python, η δήλωση import χρησιμοποιείται για την εισαγωγή ολόκληρων ενοτήτων (modules), καθώς και ειδικών ταυτοτήτων (identifiers) από αυτές τις ενότητες.

Εισαγωγή Ολόκληρης Ενότητας

Όταν εισάγετε μια ολόκληρη ενότητα, χρησιμοποιείτε την εντολή:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import module_name
import module_name
import module_name

Αυτό σας επιτρέπει να αποκτήσετε πρόσβαση στις λειτουργίες και τα χαρακτηριστικά της ενότητας μέσω του ονόματος της ενότητας και ενός τελείας. Για παράδειγμα, αν εισάγετε την ενότητα math, μπορείτε να χρησιμοποιήσετε τις λειτουργίες της ως εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import math
result = math.sqrt(25) # Χρησιμοποιεί τη συνάρτηση sqrt της ενότητας math
import math result = math.sqrt(25) # Χρησιμοποιεί τη συνάρτηση sqrt της ενότητας math
import math

result = math.sqrt(25)  # Χρησιμοποιεί τη συνάρτηση sqrt της ενότητας math

Εισαγωγή Ειδικού Αναγνωριστικού από Ενότητα

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
from module_name import identifier
from module_name import identifier
from module_name import identifier

Αυτό σας επιτρέπει να χρησιμοποιήσετε το αναγνωριστικό απευθείας, χωρίς να χρειάζεται να το προηγείται το όνομα της ενότητας και ένα τελεία. Για παράδειγμα, αν εισάγετε τον τύπο Decimal από την ενότητα decimal, μπορείτε να τον χρησιμοποιήσετε απευθείας:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
from decimal import Decimal
value = Decimal("10.5") # Χρησιμοποιεί τον τύπο Decimal απευθείας
from decimal import Decimal value = Decimal("10.5") # Χρησιμοποιεί τον τύπο Decimal απευθείας
from decimal import Decimal

value = Decimal("10.5")  # Χρησιμοποιεί τον τύπο Decimal απευθείας

Σημασία της Εισαγωγής Ενοτήτων

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

Εισαγωγή Πολλαπλών Αναγνωριστικών από μια Ενότητα

Χρησιμοποιώντας τη δήλωση from...import, μπορείτε να εισάγετε μια λίστα αναγνωριστικών, διαχωρισμένων με κόμματα, από μια ενότητα και να τα χρησιμοποιήσετε στον κώδικά σας χωρίς να χρειάζεται να τα προηγείται το όνομα της ενότητας και ένα τελεία. Αυτό κάνει τον κώδικα πιο συμπαγή και ευανάγνωστο, ειδικά όταν χρειάζεστε να χρησιμοποιήσετε πολλαπλές λειτουργίες ή τάξεις από μία ενότητα.

Παράδειγμα

Ας πάρουμε για παράδειγμα την ενότητα math:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
from math import sqrt, pi, sin, cos
# Χρήση των εισαγόμενων λειτουργιών και σταθερών
radius = 5
area = pi * radius ** 2
length_of_arc = 2 * pi * radius
sine_of_angle = sin(pi / 4)
cosine_of_angle = cos(pi / 4)
print("Εμβαδόν:", area)
print("Μήκος τόξου:", length_of_arc)
print("Ημίτονο γωνίας:", sine_of_angle)
print("Συνημίτονο γωνίας:", cosine_of_angle)
from math import sqrt, pi, sin, cos # Χρήση των εισαγόμενων λειτουργιών και σταθερών radius = 5 area = pi * radius ** 2 length_of_arc = 2 * pi * radius sine_of_angle = sin(pi / 4) cosine_of_angle = cos(pi / 4) print("Εμβαδόν:", area) print("Μήκος τόξου:", length_of_arc) print("Ημίτονο γωνίας:", sine_of_angle) print("Συνημίτονο γωνίας:", cosine_of_angle)
from math import sqrt, pi, sin, cos

# Χρήση των εισαγόμενων λειτουργιών και σταθερών
radius = 5
area = pi * radius ** 2
length_of_arc = 2 * pi * radius
sine_of_angle = sin(pi / 4)
cosine_of_angle = cos(pi / 4)

print("Εμβαδόν:", area)
print("Μήκος τόξου:", length_of_arc)
print("Ημίτονο γωνίας:", sine_of_angle)
print("Συνημίτονο γωνίας:", cosine_of_angle)

Σε αυτό το παράδειγμα, έχουμε εισάγει τις συναρτήσεις sqrt, sin, cos και τη σταθερά pi από την ενότητα math. Έπειτα, τις χρησιμοποιούμε απευθείας στον κώδικά μας χωρίς να χρειάζεται να αναφερόμαστε στην ενότητα math με τη χρήση τελείας.

Σημείωση

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

Προσοχή: Αποφύγετε τις Εισαγωγές Με Χρήση Μπαλαντέρ (Wildcard Imports)

Η χρήση του wildcard * στην εντολή εισαγωγής from modulename import * επιτρέπει την εισαγωγή όλων των αναγνωριστικών που ορίζονται σε μία ενότητα. Αυτό κάνει διαθέσιμα για χρήση στον κώδικά σας όλα τα αναγνωριστικά της ενότητας. Ωστόσο, η εισαγωγή αναγνωριστικών μιας ενότητας με wildcard εισαγωγή μπορεί να οδηγήσει σε λάθη και θεωρείται μια επικίνδυνη πρακτική που πρέπει να αποφεύγετε.

Παραδείγματα Και Τα Πιθανά Λάθη

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

Καλύτερες Πρακτικές

Αντί για wildcard imports, συνιστάται να εισάγετε μόνο τα αναγνωριστικά που χρειάζεστε ή την ολόκληρη την ενότητα και να αναφέρεστε στα αναγνωριστικά της με το όνομα της ενότητας, πράγμα που κάνει τον κώδικά σας πιο κατανοητό και διαχειρίσιμο.

Για παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import math # Αντί για from math import *
result = math.sqrt(25) # Χρησιμοποιείται το πλήρως προσδιορισμένο όνομα
import math # Αντί για from math import * result = math.sqrt(25) # Χρησιμοποιείται το πλήρως προσδιορισμένο όνομα
import math  # Αντί για from math import *

result = math.sqrt(25)  # Χρησιμοποιείται το πλήρως προσδιορισμένο όνομα

Αυτή η προσέγγιση αυξάνει την σαφήνεια και μειώνει τον κίνδυνο συγκρούσεων ονομάτων στον κώδικα.

Δέσμευση Ονομάτων για Ενότητες και Αναγνωριστικά Ενοτήτων

Μερικές φορές είναι χρήσιμο να εισάγετε μια ενότητα (module) και να χρησιμοποιήσετε μια συντομογραφία για αυτήν, ώστε να απλοποιήσετε τον κώδικά σας. Η ρήτρα as της δήλωσης import σας επιτρέπει να καθορίσετε το όνομα που θα χρησιμοποιείται για να αναφερθείτε στα αναγνωριστικά της ενότητας.

Παράδειγμα

Για παράδειγμα, μπορείτε να εισάγετε την ενότητα numpy και να τη χρησιμοποιήσετε με τη συντομογραφία np, η οποία είναι πολύ κοινή στην κοινότητα Python:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import numpy as np
# Χρήση της ενότητας numpy με τη συντομογραφία np
array = np.array([1, 2, 3, 4, 5])
import numpy as np # Χρήση της ενότητας numpy με τη συντομογραφία np array = np.array([1, 2, 3, 4, 5])
import numpy as np

# Χρήση της ενότητας numpy με τη συντομογραφία np
array = np.array([1, 2, 3, 4, 5])

Σε αυτό το παράδειγμα, η εντολή import numpy as np επιτρέπει την πρόσβαση σε όλες τις λειτουργίες και τάξεις της ενότητας numpy μέσω του συντομευμένου ονόματος np.

Πλεονεκτήματα

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

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