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

ΘΕΜΑ: [solved] Πρόβλημα με αρχικοποίηση κλάσης

[solved] Πρόβλημα με αρχικοποίηση κλάσης 13 Χρόνια 1 Μήνας πριν #1380

  • mt0sh
  • Το Άβαταρ του/της mt0sh
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 5
καλησπερα

sorry αλλα δε μπορουσα να σκεφτω κανα καταλληλο τιτλο για το topic.

Εχω που λετε αυτο τον κωδικα :
class Person:
    def __init__(self, name):
        self.name = name
 
 
if __name__ == '__main__ ':
    print('hello')
    steve = Person('steve jobs')
    print(steve.name)

παω να το τρεξω απο κονσολα κ περιμενω να μ εκτυπωσει αυτα που ζηταω...αλλα δεν...τιποτα...λαθος δε βρισκω

αν κανω καποιο αντιστοιχο παραδειγμα αλλα αντι για κλαση εχω καποια function τοτε δεν εχω προβλημα.

Ισως δεν ημουν αρκετα κατατοπιστικος αλλα αν ειναι trivial το λαθος ολο κ καποιος θα βοηθησει...

ευχαριστω!
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: test code 13 Χρόνια 1 Μήνας πριν #1381

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Καλησπέρα

έχεις ένα ορθογραφικό λαθάκι που δεν είναι εύκολο να βρεθεί καθώς δεν είναι συντακτικό λάθος...

αντί για "__main__" έχεις γράψει "__main__ ", δηλαδή έχεις βάλει ένα κενό μετά τις δύο παύλες. Αφαίρεσε την και θα είναι εντάξει :)

Αυτό είναι το σωστό:
if __name__ == '__main__':

Ο λόγος που δε σου έτρεχε είναι νομίζω προφανής. Η έκφραση μετά το if γινόταν evaluated σαν False, με αποτέλεσμα να μην τρέχει ο κώδικας με την αρχικοποίηση της κλάσης και τα print.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: test code 13 Χρόνια 1 Μήνας πριν #1382

  • mt0sh
  • Το Άβαταρ του/της mt0sh
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 5
εχεις απολυτο δικιο αυτο ηταν !! αντε να το βρω θα τρωγα 2 μερες :D

χμμμ το χα δοκιμασει κ στον Eclpse με το PyDev αλλα ουτε εκει πετουσε κανα σφαλμα ( περιεργο κατ' εμε... ) anyway λυθηκε κ πλεον το ξερω το σημειο κ το προσεχω!! :)
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: test code 13 Χρόνια 1 Μήνας πριν #1383

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Ναι το συγκεκριμένο είναι λίγο περίεργο, γιατί δεν είναι ούτε bug ούτε βέβαια και συντακτικό λάθος.

Μην ξεχνάς ότι στην python όλα είναι αντικείμενα και ονόματα. Αν για κάποιο λόγο (που δε μπορώ να φανταστώ ποιος είναι αυτός) σε κάποιο σημείο του κώδικα σου είχες δώσει στο όνομα __name__ κάποια τιμή διαφορετική από τη default (δηλαδή το έβαζες να δείχνει ένα διαφορετικό αντικείμενο) τότε θα μπορούσες να ελέγξεις αν το όνομα αυτό ισούται με ένα string διαφορετικό του "__main__".
__name__ = "Υο!!!"
 
if __name__ == "Yo!!!":
    print("Cool!")
Δες και ΕΔΩ (όλο το θέμα αλλά και το link που δίνω). Είναι λίγο προχωρημένο θεματάκι τα ονόματα και τα αντικείμενα στην Python, αλλά αν δεν τα ξεκαθαρίσεις θα τα βρίσκεις μπροστά σου ξανά και ξανά.

Άσχετο
Γιατί χρησιμοποιείς old-style κλάσεις?
Τελευταία διόρθωση: 13 Χρόνια 1 Μήνας πριν από pmav99.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: test code 13 Χρόνια 1 Μήνας πριν #1384

  • mt0sh
  • Το Άβαταρ του/της mt0sh
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 5
pmav99 έγραψε:
Ναι το συγκεκριμένο είναι λίγο περίεργο, γιατί δεν είναι ούτε bug ούτε βέβαια και συντακτικό λάθος.

Μην ξεχνάς ότι στην python όλα είναι αντικείμενα και ονόματα. Αν για κάποιο λόγο (που δε μπορώ να φανταστώ ποιος είναι αυτός) σε κάποιο σημείο του κώδικα σου είχες δώσει στο όνομα __name__ κάποια τιμή διαφορετική από τη default (δηλαδή το έβαζες να δείχνει ένα διαφορετικό αντικείμενο) τότε θα μπορούσες να ελέγξεις αν το όνομα αυτό ισούται με ένα string διαφορετικό του "__main__".
__name__ = "Υο!!!"
 
 
if __name__ == "Yo!!!":
    print("Cool!")

κτλβα τι λες..αλλα ειναι οντως παραξενο να αρχισω να κανω τετοιου ελεγχους! καλυτερα να προσεχω παραπανω :P
pmav99 έγραψε:
Άσχετο
Γιατί χρησιμοποιείς old-style κλάσεις?

εδω με τρομαξες!! τι εννοεις ? :ohmy:
Τελευταία διόρθωση: 13 Χρόνια 1 Μήνας πριν από pmav99.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: test code 13 Χρόνια 1 Μήνας πριν #1385

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Έκανα edit το προηγούμενο μήνυμα οπότε δες και τα υπόλοιπα που γράφω.

Για τις new style class αν ψάξεις στο google θα βρεις πολλά. H βασική διαφορά είναι οτι της δημιουργείς ως εξής:
class NewStyleClass(object):
    def __init__(self, arg):
        super(NewStyleClass, self).__init__()
 
        self.arg = arg
Πρόσεξε το object στη δήλωση της κλάσης και τη super στην __init__

Δες αυτα: 1 2
Αν θες άνοιξε ένα καινούριο θέμα.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": mt0sh

Απ:[solved] Πρόβλημα με αρχικοποίηση κλάσης 13 Χρόνια 1 Μήνας πριν #1387

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Για τις κλάσεις δες και ΕΔΩ

τελικά λόγω Python3 μάλλον new style κλάσεις είχες τελικά, οπότε μη φοβάσαι :P
Τελευταία διόρθωση: 13 Χρόνια 1 Μήνας πριν από pmav99.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.489 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

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