pi314 Δημοσ. 4 Μαΐου 2022 Δημοσ. 4 Μαΐου 2022 Έστω ότι έχω έναν κώδικα έτσι: class test: def do_something_1(): . . . def do_something_2(): . . . def do_something_3(): . . . Προσπαθώ κάθε function να την κάνω ξεχωριστό αρχείο και κάπως να την καλώ για να μειώσω τον χώρο της κλάσης που είναι πολλές γραμμές κώδικα. Οπότε έκανα το εξής: την do_something_1 την αφαίρεσα τελείως και την έκανα αρχείο, έτσι: do_something_1.py, οπότε στην κλάση στην θέση της function, έχω import do_something_1.py ,αλλά βαράει ο compiler/interpreter. Ακολούθησα αυτό το άρθρο: https://microeducate.tech/how-can-i-separate-functions-of-class-into-multiple-files/ με λίγο αυτοσχεδιασμό, επειδή θέλω να καλώ όλη την function... Καμιά ιδέα?
DrKo Δημοσ. 4 Μαΐου 2022 Δημοσ. 4 Μαΐου 2022 Είναι αρκετά λάθος αυτό που πας να κάνεις. Δημιουργεί πολλά προβλήματα που, προφανώς, δεν έχεις ιδέα ότι μπορεί να υπάρχουν. Η δικαιολογία "το αρχείο είναι μεγάλο" είναι από τις πιο λάθος που έχω ακούσει ποτέ μου και φυσικά και θα σου "βαρέσει" ο interpreter. Εάν, μία στις 100.000, το αρχείο είναι όντως τόσο μεγάλο (π.χ. πάνω από 5000 γραμμές κώδικα) τότε έχεις κάνει λάθος στον σχεδιασμό της κλάσης. TL;DR: Μην το κανεις. Είναι λάθος.- 2
Moderators Kercyn Δημοσ. 4 Μαΐου 2022 Moderators Δημοσ. 4 Μαΐου 2022 Το να μεταφέρεις αλλού τον κώδικα όχι μόνο δεν σου λύνει κανένα πρόβλημα αλλά σου δίνει την ψευδαίσθηση ότι ο κώδικάς σου είναι "καλύτερος" σε σχέση με πριν. Η ποιότητα του κώδικα δε μετριέται με το πόσα κιλά κώδικας υπάρχει σε κάθε αρχείο ούτε τα προβλήματα ενός κακογραμμένου codebase λύνονται με ζογκλερικά. Αν πιστεύεις ότι κάτι είναι πιο περίπλοκο και πολύπλοκο απ' ό,τι χρειάζεται, τότε κάτσε και γράψε το απ' την αρχή (ή, αν αυτό δε γίνεται, δες πώς μπορείς να το βελτιώσεις). 1
pi314 Δημοσ. 4 Μαΐου 2022 Μέλος Δημοσ. 4 Μαΐου 2022 (επεξεργασμένο) 14 λεπτά πριν, Kercyn είπε Το να μεταφέρεις αλλού τον κώδικα όχι μόνο δεν σου λύνει κανένα πρόβλημα αλλά σου δίνει την ψευδαίσθηση ότι ο κώδικάς σου είναι "καλύτερος" σε σχέση με πριν. Η ποιότητα του κώδικα δε μετριέται με το πόσα κιλά κώδικας υπάρχει σε κάθε αρχείο ούτε τα προβλήματα ενός κακογραμμένου codebase λύνονται με ζογκλερικά. Αν πιστεύεις ότι κάτι είναι πιο περίπλοκο και πολύπλοκο απ' ό,τι χρειάζεται, τότε κάτσε και γράψε το απ' την αρχή (ή, αν αυτό δε γίνεται, δες πώς μπορείς να το βελτιώσεις). Οκ, το καταλαβαίνω...αλλά επειδή δεν έχω χρόνο υπάρχει κάποιο ζουγκλερικό για αυτό?? Επεξ/σία 4 Μαΐου 2022 από pi314
Moderators Kercyn Δημοσ. 4 Μαΐου 2022 Moderators Δημοσ. 4 Μαΐου 2022 14 λεπτά πριν, pi314 είπε Οκ, το καταλαβαίνω...αλλά επειδή δεν έχω χρόνο υπάρχει κάποιο ζουγκλερικό για αυτό?? Δεν ξέρω γιατί θες να σπαταλήσεις χρόνο για να κάνεις τον κώδικά σου χειρότερο, αλλά δυστυχώς δεν έχω ασχοληθεί με python, οπότε δε μπορώ να σε βοηθήσω με τα τεχνικά.
DrKo Δημοσ. 4 Μαΐου 2022 Δημοσ. 4 Μαΐου 2022 59 λεπτά πριν, pi314 είπε Οκ, το καταλαβαίνω...αλλά επειδή δεν έχω χρόνο υπάρχει κάποιο ζουγκλερικό για αυτό?? Αυτό που πας να κάνεις είναι λάθος. Όχι γιατί το λέει ένας τυχαίος σε ένα forum, αλλά γιατί δεν λειτουργεί έτσι το θέμα.
archer100 Δημοσ. 4 Μαΐου 2022 Δημοσ. 4 Μαΐου 2022 Δεν ακουγεται και πολυ καλη πρακτικη, αλλα αν θελεις οπωσδηποτε να το κανεις, δες και εδω https://stackoverflow.com/questions/47561840/how-can-i-separate-the-functions-of-a-class-into-multiple-files
masteripper Δημοσ. 4 Μαΐου 2022 Δημοσ. 4 Μαΐου 2022 Αν έχεις φτάσει σε σημείο να χρειάζεσαι να σπάσεις τα functions μιας κλάσης σε διαφορετικά αρχεία τότε μάλλον κάτι δεν είναι σωστό σε επίπεδο design Μήπως η κλαση σου μπορεί να σπάσει σε υποκλάσεις...είτε λόγω κληρονομικότητας είτε...πολλά Εαν αυτά δεν ισχύουν πιθανόν να χρειάζεσαι μια προσέγγιση του τύπου ...βρίσκω κοινά κομμάτια κώδικα και τα οδηγώ σε helper function/class/singleton....
pi314 Δημοσ. 5 Μαΐου 2022 Μέλος Δημοσ. 5 Μαΐου 2022 (επεξεργασμένο) Από ότι βλέπω στα διάφορα αποτελέσματα του google, με inheritance ΜΑΛΛΟΝ γίνεται δουλειά... Επεξ/σία 5 Μαΐου 2022 από pi314
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα