Δημοσιεύτηκε: 07 Δεκ 2011, 15:34
pmav99 έγραψε:Κάνει τα rope, pylint κτλ και το code completion να μη δουλεύουν τόσο καλά.
Μπορείς να μου εξηγήσεις τις παρακάτω έννοιες; Δεν τις έχω ξανασυναντήσει. Αυτό που λες ισχύει και για το from package import something αντίστοιχα;
pmav99 έγραψε:Αντί για χ=0, χ+=1 κτλ περίεργα βάλε ένα enumerate. Σε Python γράφεις
pmav99 έγραψε:Και κάτι ακόμα. Το τμήμα αυτό του κώδικα μπορεί να γραφεί με αρκετά πιο αντικειμενοστραφή τρόπο. Επειδή το συγκεκριμένο είναι πολύ απλό, είναι πιο σύντομη η υλοποίηση που έχεις κάνει (όσον αφορά τις γραμμές κώδικα), όμως δες πως θα μπορούσε να γίνει:
- Κώδικας: Επιλογή όλων
class MyTab(QWidget):
def __init__(self, parent):
super(MyTab, self).__init__(parent)
self.parent = parent
layout = QFormLayout()
self.from_combobox = QComboBox()
self.to_combobox = QComboBox()
layout.addRow(self.tr("Convert from"), self.from_combobox)
layout.addRow(self.tr("Convert to"), self.to_combobox)
self.setLayout(layout)
def update_comboboxes(self):
self.from_combobox.addItems(self.formats)
self.to_combobox.addItems(self.formats)
class AudioTab(MyTab):
def __init__(self, parent):
super(AudioTab, self).__init__(parent)
self.parent = parent
self.formats = self.parent.audio_formats
self.update_comboboxes()
class ImageTab(MyTab):
def __init__(self, parent):
super(ImageTab, self).__init__(parent)
self.parent = parent
self.formats = self.parent.image_formats
self.update_comboboxes()
....
# προσέθεσε τα παρακάτω στην κύρια κλαση
self.TabWidget.addTab(AudioTab(self), "My Audio")
self.TabWidget.addTab(ImageTab(self), "My Images")
Πολύ ωραίο. Βέβαια πέρα του ότι είναι μεγαλύτερο (σε μέγεθος), δημιουργούνται και 5 επιπλέον κλάσεις. Δεν ξέρω αν έχει ιδιαίτερη σημασία αυτό.