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.3 Ενέργειες επι των κλάσεων

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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. Αυτή η λέξη-κλειδί διαγράφει την ύπαρξη μιας ιδιότητας από ένα αντικείμενο.

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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″]

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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 για να αποφευχθεί το σφάλμα ελλιπούς ορισμού. Ακολουθεί ένα παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class MyClass:
pass
class MyClass: pass
class MyClass:
    pass

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

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