Καλησπέρα,
είμαι καινούριος στο forum και θα ήθελα να υποβάλω την εξής ερώτηση που αφορά στις κλάσεις της python (2.7):
Έστω ότι ορίζω την παρακάτω κλάση:
class my_data():
def __init__(self,data1,data2,data3):
self.data1 = data1
self.data2 = data2
self.data3 = data3
και στη συνέχεια καλώ instances της κλάσης, όπως π.χ.:
d1 = my_data(1,2,3)
d2 = my_data(4,5,d1)
d3 = my_data(7,8,d2)
Μέχρι εδώ έχει καλώς, όμως στη συνέχεια θέλω να δοκιμάσω το εξής:
d2 = my_data(4,5,d1)
d1 = my_data(1,2,3)
d3 = my_data(7,8,d2)
Εδώ ο κώδικας βγάζει NameError γιατί προφανώς το d1 δεν έχει οριστεί.
Επομένως η ερώτησή μου είναι η εξής:
Πώς θα τροποποιήσω την κλάση ώστε αν ένα όρισμα του instance δεν υπάρχει, να δημιουργείται και στη συνέχεια να δημιουργείται και το instance, δηλαδή εν προκειμένω, όταν γράφουμε
πρώτα να δημιουργείται το d1 έστω ως
d1 = my_data(None,None,None)
και στη συνέχεια το d2
Δοκίμασα το εξής αλλά δε λειτουργεί:
class my_data():
def __init__(self,data1,data2,data3):
self.data1 = data1
self.data2 = data2
try:
self.data3 = data3
except:
data3 = my_data(None,None,None)
self.data3 = data3
Ευχαριστώ,
Δημήτρης