Η συνάρτηση init() είναι μια ειδική συνάρτηση που υπάρχει σε κάθε κλάση και καλείται κατά την αρχικοποίηση του αντικειμένου της κλάσης. Χρησιμοποιείται για να αρχικοποιήσει μεταβλητές και ιδιότητες του αντικειμένου, ώστε να έχουν ορισμένες αρχικές τιμές κατά τη δημιουργία του αντικειμένου. Η σύνταξη της init() είναι η εξής:
class MyClass: def __init__(self, arg1, arg2): self.property1 = arg1 self.property2 = arg2
Στο παραπάνω παράδειγμα, η κλάση MyClass
έχει δύο ιδιότητες, την property1
και την property2
, οι οποίες αρχικοποιούνται με τις τιμές των ορισμάτων arg1
και arg2
, αντίστοιχα.
Κατά την κλήση του constructor, δημιουργείται ένα νέο αντικείμενο της κλάσης, το οποίο δίνει τις παραπάνω τιμές στις ιδιότητές του. Αν δεν οριστούν τιμές για τα ορίσματα arg1
και arg2
, τότε θα πρέπει να οριστούν default τιμές στον ορισμό της συνάρτησης init().
Ένα ακόμα παράδειγμα μπορεί να είναι η δημιουργία μιας κλάσης “Person”, όπου η συνάρτηση init() θα χρησιμοποιηθεί για να αρχικοποιήσει τις ιδιότητες του αντικειμένου Person (όπως το όνομα και την ηλικία).
Παρακάτω παρατίθεται ένα παράδειγμα κώδικα σε Python:
class Person: def __init__(self, name, age): self.name = name self.age = age def my_func(self): print("Hello, my name is " + self.name) p1 = Person("John", 36) p1.my_func()
Στο παραπάνω παράδειγμα, δημιουργούμε μια κλάση “Person” και ορίζουμε τη συνάρτηση init() για να αρχικοποιήσουμε τις ιδιότητες name και age του αντικειμένου Person. Στη συνέχεια, δημιουργούμε ένα αντικείμενο p1 της κλάσης Person και καλούμε τη συνάρτηση my_func() για να εκτυπώσουμε το όνομα του αντικειμένου.
[adinserter block=”2″]
Η έξοδος του παραπάνω κώδικα θα είναι:
Hello, my name is John
Παρακάτω έχουμε ένα ακόμα παράδειγμα που δείχνει πως μπορούμε να χρησιμοποιήσουμε τη μέθοδο __init__()
για να αρχικοποιήσουμε τα αντικείμενα ενός κατασκευαστή αυτοκινήτων:
class Car: def __init__(self, make, model, year): self.make = make self.model = model self.year = year def start(self): print("Starting the engine") my_car = Car("Toyota", "Corolla", 2022) print(my_car.make) print(my_car.model) print(my_car.year) my_car.start()
Σε αυτό το παράδειγμα, η μέθοδος __init__()
δέχεται τρία ορίσματα: make
, model
και year
. Αυτά τα ορίσματα χρησιμοποιούνται για να αρχικοποιήσουν τα αντίστοιχα πεδία στο αντικείμενο Car
. Έπειτα, έχουμε μια μέθοδο start()
η οποία εκτελείται όταν το αυτοκίνητο ξεκινά. Τέλος, δημιουργούμε ένα αντικείμενο Car
με τιμές Toyota
, Corolla
, και 2022
και το εκτυπώνουμε, επικαλούμενοι τα πεδία make
, model
και year
, και καλούμε τη μέθοδο start()
.
Μπορούμε να ορίσουμε τη συμπεριφορά του αντικειμένου όταν αναπαρίσταται σαν συμβολοσειρά χρησιμοποιώντας τη μέθοδο __str__()
. Ας δούμε ένα παράδειγμα:
class Person: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return f"My name is {self.name} and I am {self.age} years old." person = Person("Mike", 19) print(person)
Το πρόγραμμα αυτό θα εμφανίσει την παρακάτω έξοδο:
My name is Mike and I am 19 years old.
[adinserter block=”3″]
Ας δημιουργήσουμε ένα παράδειγμα όπου θα δημιουργήσουμε μια κλάση με όνομα Car και θα προσθέσουμε μια μέθοδο (method) στην κλάση για να εμφανίζουμε τα χαρακτηριστικά του αυτοκινήτου: μάρκα, μοντέλο και έτος κατασκευής.
class Car: def __init__(self, brand, model, year): self.brand = brand self.model = model self.year = year def car_info(self): print("Brand:", self.brand) print("Model:", self.model) print("Year:", self.year) my_car = Car("Ford", "Mustang", 2022) my_car.car_info()
Το παραπάνω παράδειγμα δημιουργεί μια κλάση με όνομα Car και μια μέθοδο με όνομα car_info() που εμφανίζει τα χαρακτηριστικά του αυτοκινήτου. Στη συνέχεια, δημιουργούμε ένα αντικείμενο my_car από την κλάση Car και καλούμε τη μέθοδο car_info() για να εμφανίσουμε τις πληροφορίες του αυτοκινήτου. Το αποτέλεσμα θα είναι:
Brand: Ford Model: Mustang Year: 2022