Ενότητα 7 - Τμήμα 1 - Κλάσεις
7.1.5 - Αναφορές
Ρίξτε μια ματιά στον παρακάτω κώδικα.
class Person():
def __init__(self):
self.name = ""
self.money = 0
bob = Person()
bob.name = "Bob"
bob.money = 100
nancy = Person()
nancy.name = "Nancy"
print(bob.name, "has", bob.money, "euros.")
print(nancy.name, "has", nancy.money, "dollars.")
Για να οπτικοποιήσετε τον κώδικα πατήστε στον σύνδεσμο για να μεταφερθείτε στο http://www.pythontutor.com
Ο Παραπάνω κώδικας δεν εμπεριέχει κάτι νέο, ο παρακάτω όμως έχει μία διαφορά:
class Person():
def __init__(self):
self.name = ""
self.money = 0
bob = Person()
bob.name = "Bob"
bob.money = 100
nancy = bob
nancy.name = "Nancy"
print(bob.name, "has", bob.money, "euros.")
print(nancy.name, "has", nancy.money, "euros.")
Για να οπτικοποιήσετε τον κώδικα πατήστε στον σύνδεσμο για να μεταφερθείτε στο http://www.pythontutor.com
Η διαφορά στο pythontutor είναι στη γραμμά 10. Η nancy είναι μία αναφορά στο bob. Εκτός από αναφορά, μπορούμε να αποκαλέσουμε και διεύθυνση μνήμης , δείκτη, ή χειρισμό. Μία αναφορά δείχνει σε μία διεύθυνση στη μνήμη του υπολογιστή στην οποία έχει αποθηκευτεί το αντικείμενο. Η διεύθυνση αυτή είναι ένας δεκαεξαδικός αριθμός, ο οποίος αν τυπωθεί μπορεί να είναι κάτι σαν 0x1e504. Όταν εκτελείτε ο κώδικας, γίνεται αντιγραφή της διεύθυνσης αντί να γίνει αντιγραφή του αντικειμένου που η διεύθυνση μνήμης περιέχει.