Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Συναρτήσεις και Κλάσεις

Συναρτήσεις και Κλάσεις 7 Χρόνια 1 Μήνας πριν #4294

  • XristosTsa
  • Το Άβαταρ του/της XristosTsa
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 7
Ποιές οι διαφορές στις συναρτήσεις και στις κλάσεις. Γιατι να χρησιμοποιήσω αντικείμενα-κλάσεις αντι των συναρτήσεων?
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Συναρτήσεις και Κλάσεις 7 Χρόνια 1 Μήνας πριν #4296

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
XristosTsa έγραψε:
Ποιές οι διαφορές στις συναρτήσεις και στις κλάσεις. Γιατι να χρησιμοποιήσω αντικείμενα-κλάσεις αντι των συναρτήσεων?

Η συνάρτηση είναι ένα τρόπος για να οργανώνουμε το πρόγραμμα μας σε επιμέρους μικρότερα προγράμματα.
Επιπλέον μας δίνει την δυνατότητα οι μεταβλητές να είναι ανεξάρτητες από τις υπόλοιπες που υπάρχουν στο πρόγραμμα μας. Για παράδειγμα:
def petros():
    name = 'Petros'
 
def Giwrgos():
    name = 'Giwrgos'

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


Η κάθε συνάρτηση θα πρέπει να υπάρχει και για κάποιον σκοπό.

Για παράδειγμα:
def add(a,b):
    return a+b

η παραπάνω συνάρτηση μας επιστρέφει το άθροισμα δύο αριθμών. Αυτός είναι ο σκοπός της.

Οι κλάσεις οργανώνουν μεταβλητές και συναρτήσεις (τις οποίες ονομάζουμε μεθόδους) μαζί σαν ένα πακέτο
το οποίο ως στόχο έχουν να χειρίζονται αυτές τις μεταβλητές (τα δεδομένα μας δηλαδή) μέσω κάποιον μεθόδων (Συναρτήσεων).

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

Παράδειγμα:
#-----------------Δημιουργία της Κλάσης-----------------#
class Square:
 
    #Constructor.
    def __init__(self, length):
 
        self.length = length #Το μέγεθος της πλευράς του τετραγώνου.
        self.x      = 0      #Τετμημένη του τετραγώνου.
        self.y      = 0      #Τεταγμένη του τετραγώνου.
 
 
 
    #Methods 1.
    def getPosition(self):
        '''Επιστρέφει την θέση του τετραγώνου στο καρτεσιανό σύστημα.'''
        return (self.x, self.y)
 
 
    #Methods 2.
    def getSurface(self):
        '''Επιστρέφει το εμβαδόν του τετραγώνου.'''
        return self.length ** 2
#-----------------Δημιουργία της Κλάσης-----------------#
 
 
 
 
#Δημιουργία τετραγώνου πλευράς 5.
square1 = Square(5)
 
#Δημιουργία τετραγώνου πλευράς 10.
square2 = Square(10)
 
print( "Το εμβαδόν τετραγώνου πλευράς 5 είναι:",square1.getSurface() )
print( "Το εμβαδόν τετραγώνου πλευράς 10 είναι:",square2.getSurface() )

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

Όπως βλέπεις τα square1 και square2 είναι αντικείμενα αυτής της κλάσης με διαφορετικά δεδομένα, όπου στην συγκεκριμένη περίπτωση οι πλευρές τους είναι διαφορετικές (5 και 10). Αν και τα x,y τους είναι 0 είναι διαφορετικές μεταβλητές για κάθε αντικείμενο. Αυτό σημαίνει ότι

sqare1.x και square2.x είναι διαφορετικές μεταβλητές άρα αν αλλάξεις το περιεχόμενο της μία δεν αλλάζει και στο άλλο!!!


Για να καταλάβεις καλύτερα το πως δουλεύουν οι κλάσεις πρέπει να μάθεις αντικειμενοστραφή προγραμματισμό κάτι το οποίο είναι ένα ολόκληρο ανεξάρτητο μάθημα στο προγραμματισμό και ο καλύτερος τρόπος για να το μάθεις είναι να ασχοληθείς με java.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": XristosTsa

Συναρτήσεις και Κλάσεις 7 Χρόνια 1 Μήνας πριν #4297

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Θεωρητικά στην python η χρήση κλάσεων για να κάνεις οτιδήποτε δεν είναι απαραίτητη μπορείς να το κάνεις και με τα άλλα εργαλεία που σου δίνει η γλώσσα.

Ωστόσο παραπέρα υπάρχουν σημαντικές βιβλιοθήκες που χρειάζεσαι κλάσεις πχ jango για web kivy για γραφικά που δουλεύουν με κλάσεις. Επίσης η δουλειά με τις κλάσεις γίνοται πιο εύκολα, γιαυτό εξάλου και χρησιμοποιούνται παντού.

Ένα tutorial που θεωρώ αρκετά καλό για κλάσεις στην python είναι εδώ. www.python-course.eu/python3_object_oriented_programming.php
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": XristosTsa
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.356 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου