4.3 Ενέργειες επι των κλάσεων

ο παρακάτω παράδειγμα δείχνει πώς να χρησιμοποιηθεί το self ως παράμετρος στη μέθοδο __init__() της κλάσης Person:

class Person:
  def __init__(self, name, age):
    self.name = name  # Αρχικοποίηση της μεταβλητής name με την τιμή που περνιέται σαν όρισμα
    self.age = age  # Αρχικοποίηση της μεταβλητής age με την τιμή που περνιέται σαν όρισμα

  def myfunc(self):
    print("Hello my name is " + self.name)  # Εκτύπωση μηνύματος που περιλαμβάνει την τιμή της μεταβλητής name

p1 = Person("John", 36)  # Δημιουργία αντικειμένου Person με τις παρεχόμενες τιμές για το όνομα και την ηλικία
p1.myfunc()  # Κλήση της μεθόδου myfunc() για το αντικείμενο p1

Ο παραπάνω κώδικας δημιουργεί μια κλάση με το όνομα “Person”. Η κλάση αυτή έχει μια μέθοδο κατασκευής (μέθοδο __init__) που αρχικοποιεί τις μεταβλητές name και age με τις τιμές που περνιούνται ως όρισματα κατά τη δημιουργία αντικειμένων της κλάσης.

Η κλάση έχει επίσης μια μέθοδο με το όνομα myfunc, η οποία εκτυπώνει ένα μήνυμα που περιλαμβάνει την τιμή της μεταβλητής name.

Στον κώδικα δημιουργείται ένα αντικείμενο της κλάσης Person με τις τιμές “John” για το όνομα και 36 για την ηλικία. Έπειτα, καλείται η μέθοδος myfunc() για το αντικείμενο αυτό, και εκτυπώνεται το μήνυμα “Hello my name is John” στην έξοδο.

Στο παρακάτω παράδειγμα θα δείξουμε πως μπορούμε να τροποποιήσουμε μια ιδιότητα ενός αντικειμένου της κλάσης Person:

class Person:
  def __init__(self, name, age):
    self.name = name  # Αρχικοποίηση της μεταβλητής name με την τιμή που περνιέται ως παράμετρος
    self.age = age  # Αρχικοποίηση της μεταβλητής age με την τιμή που περνιέται ως παράμετρος

  def myfunc(self):
    print("Hello my name is " + self.name)  # Εκτύπωση μηνύματος με το όνομα που είναι αποθηκευμένο στη μεταβλητή name

p1 = Person("John", 36)  # Δημιουργία ενός αντικειμένου της κλάσης Person με το όνομα "John" και την ηλικία 36

p1.age = 40  # Αλλαγή της τιμής της μεταβλητής age του αντικειμένου p1 σε 40

print(p1.age)  # Εκτύπωση της ηλικίας που είναι αποθηκευμένη στη μεταβλητή age του αντικειμένου p1

Ο παραπάνω κώδικας κάνει τα εξής:

  1. Ορίζει μια κλάση με το όνομα “Person”.
  2. Στην κλάση Person, ορίζεται ο constructor (__init__) που δέχεται δύο παραμέτρους: το όνομα (name) και την ηλικία (age). Μέσα στο constructor, αποθηκεύονται οι τιμές των παραμέτρων στις αντίστοιχες μεταβλητές της κλάσης (self.name και self.age).
  3. Ορίζεται μια μέθοδος με το όνομα myfunc, η οποία εκτυπώνει ένα μήνυμα που περιλαμβάνει το όνομα που είναι αποθηκευμένο στη μεταβλητή name.
  4. Δημιουργείται ένα αντικείμενο της κλάσης Person με το όνομα “John” και την ηλικία 36. Οι τιμές αυτές περνιούνται ως παράμετροι στον constructor της κλάσης.
  5. Αλλάζεται η τιμή της μεταβλητής age του αντικειμένου σε 40.
  6. Εκτυπώνεται η τιμή της μεταβλητής age του αντικειμένου, η οποία είναι τώρα 40.

Συνολικά, ο κώδικας δημιουργεί ένα αντικείμενο της κλάσης Person, αλλάζει την ηλικία του αντικειμένου και εκτυπώνει την νέα ηλικία.

[adinserter block=”2″]

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

Παράδειγμα:

class Person:
  def __init__(self, name, age):
    self.name = name  # Αρχικοποίηση της ιδιότητας name με την τιμή που δίνεται ως παράμετρος
    self.age = age  # Αρχικοποίηση της ιδιότητας age με την τιμή που δίνεται ως παράμετρος

  def greet(self):
    print("Hello, my name is " + self.name + " and I am " + str(self.age) + " years old.")

# Δημιουργία αντικειμένου
person = Person("John", 36)

# Πρόσβαση στις ιδιότητες του αντικειμένου
print(person.name)  # Εκτύπωση της ιδιότητας name
print(person.age)  # Εκτύπωση της ιδιότητας age

# Τροποποίηση ιδιότητας του αντικειμένου
person.age = 40  # Τροποποίηση της ιδιότητας age

# Πρόσβαση στην τροποποιημένη ιδιότητα του αντικειμένου
print(person.age)  # Εκτύπωση της τροποποιημένης ιδιότητας age

# Διαγραφή ιδιότητας του αντικειμένου
del person.age  # Διαγραφή της ιδιότητας age

Ο παραπάνω κώδικας δημιουργεί μια κλάση με το όνομα “Person”. Η κλάση αυτή έχει έναν constructor (__init__) που δέχεται δύο παραμέτρους, το όνομα και την ηλικία του ατόμου. Μέσα στον constructor, οι παράμετροι αναθέτονται σε δύο ιδιότητες του αντικειμένου, το name και το age.

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

Στη συνέχεια, δημιουργείται ένα αντικείμενο με τη χρήση της κλάσης Person, περνώντας τις τιμές “John” και 36 για το όνομα και την ηλικία αντίστοιχα. Στη συνέχεια, τυπώνονται οι ιδιότητες name και age του αντικειμένου.

Στον επόμενο βήμα, η ιδιότητα age του αντικειμένου τροποποιείται από 36 σε 40, και στη συνέχεια τυπώνεται η τροποποιημένη τιμή της age.

Τέλος, η ιδιότητα age του αντικειμένου διαγράφεται με τη χρήση της εντολής del, και αν κληθεί η εντολή τυπώνοντας ξανά την age, θα προκαλέσει σφάλμα καθώς η ιδιότητα δεν υπάρ

χει πλέον στο αντικείμενο.

Μπορείτε να διαγράψετε ένα αντικείμενο χρησιμοποιώντας τη λέξη-κλειδί “del”. Αυτό θα διαγράψει την αναφορά στο αντικείμενο, καθιστώντας το αντικείμενο μη προσβάσιμο.

[adinserter block=”3″]

Παράδειγμα:

class Car:
  def __init__(self, brand, model, year):
    self.brand = brand  # Αρχικοποίηση της μεταβλητής brand με την τιμή που δίνεται ως παράμετρος
    self.model = model  # Αρχικοποίηση της μεταβλητής model με την τιμή που δίνεται ως παράμετρος
    self.year = year  # Αρχικοποίηση της μεταβλητής year με την τιμή που δίνεται ως παράμετρος

car1 = Car("Ford", "Mustang", 1964)  # Δημιουργία ενός αντικειμένου Car με τις συγκεκριμένες τιμές
car2 = Car("Tesla", "Model S", 2021)  # Δημιουργία ενός αντικειμένου Car με τις συγκεκριμένες τιμές

del car1  # Διαγραφή του αντικειμένου car1

Ο παραπάνω κώδικας δημιουργεί μια κλάση με την ονομασία “Car” που αναπαριστά ένα αυτοκίνητο. Η κλάση έχει έναν κατασκευαστή __init__ που δέχεται τρεις παραμέτρους: brand, model και year. Ο κατασκευαστής αρχικοποιεί τα αντίστοιχα πεδία της κλάσης με τις τιμές που περνιούνται ως παράμετροι.

Στη συνέχεια, δημιουργούνται δύο αντικείμενα της κλάσης Car. Το πρώτο αντικείμενο ονομάζεται car1 και έχει τις τιμές “Ford” για το brand, “Mustang” για το model και 1964 για το year. Το δεύτερο αντικείμενο ονομάζεται car2 και έχει τις τιμές “Tesla” για το brand, “Model S” για το model και 2021 για το year.

Τέλος, η εντολή del car1 διαγράφει το αντικείμενο car1 από τη μνήμη. Αυτό σημαίνει ότι η μνήμη που είχε καταληφθεί από το αντικείμενο car1 αποδεσμεύεται και μπορεί να χρησιμοποιηθεί από άλλες μεταβλητές ή αντικείμενα.

Στην Python, ο ορισμός μιας κλάσης δεν μπορεί να είναι κενός. Ωστόσο, σε περιπτώσεις όπου χρειάζεται να έχετε έναν ορισμό κλάσης χωρίς περιεχόμενο, μπορείτε να χρησιμοποιήσετε τη δήλωση pass. Η δήλωση pass είναι μια ειδική δήλωση στην Python που δεν κάνει τίποτα. Χρησιμοποιείται για να αποφευχθεί το σφάλμα “ελλιπής ορισμός” και δεν έχει κανένα αποτέλεσμα στην εκτέλεση του προγράμματος.

Ας υποθέσουμε ότι έχουμε μια κενή κλάση με το όνομα MyClass και δεν έχει κανένα περιεχόμενο. Σε αυτήν την περίπτωση, μπορούμε να χρησιμοποιήσουμε τη δήλωση pass για να αποφευχθεί το σφάλμα ελλιπούς ορισμού. Ακολουθεί ένα παράδειγμα:

class MyClass:
    pass

Σε αυτό το παράδειγμα, η κλάση MyClass δεν έχει κανένα περιεχόμενο και η δήλωση pass χρησιμοποιείται για να αποτρέψει το σφάλμα ελλιπούς ορισμού.

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