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.2 Συναρτήσεις κλάσεων στην Python

Η συνάρτηση init() είναι μια ειδική συνάρτηση που υπάρχει σε κάθε κλάση και καλείται κατά την αρχικοποίηση του αντικειμένου της κλάσης. Χρησιμοποιείται για να αρχικοποιήσει μεταβλητές και ιδιότητες του αντικειμένου, ώστε να έχουν ορισμένες αρχικές τιμές κατά τη δημιουργία του αντικειμένου. Η σύνταξη της init() είναι η εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class MyClass:
def __init__(self, arg1, arg2):
self.property1 = arg1
self.property2 = arg2
class MyClass: def __init__(self, arg1, arg2): self.property1 = arg1 self.property2 = arg2
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:

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

Η έξοδος του παραπάνω κώδικα θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Hello, my name is John
Hello, my name is John
Hello, my name is John

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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()
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()
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__(). Ας δούμε ένα παράδειγμα:

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

Το πρόγραμμα αυτό θα εμφανίσει την παρακάτω έξοδο:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
My name is Mike and I am 19 years old.
My name is Mike and I am 19 years old.
My name is Mike and I am 19 years old.

[adinserter block=”3″]

Ας δημιουργήσουμε ένα παράδειγμα όπου θα δημιουργήσουμε μια κλάση με όνομα Car και θα προσθέσουμε μια μέθοδο (method) στην κλάση για να εμφανίζουμε τα χαρακτηριστικά του αυτοκινήτου: μάρκα, μοντέλο και έτος κατασκευής.

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
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()
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()
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() για να εμφανίσουμε τις πληροφορίες του αυτοκινήτου. Το αποτέλεσμα θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Brand: Ford
Model: Mustang
Year: 2022
Brand: Ford Model: Mustang Year: 2022
Brand: Ford
Model: Mustang
Year: 2022

Δωρεα μεσω Paypal

Για την κάλυψη αναγκών φιλοξενίας και δημιουργίας περιεχομένου.

κατηγοριες μαθηματων

Ιστορικο ενοτητων

top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων