Organizzazione delle funzioni Python in un modulo o classe

0

Sto lavorando su un modulo per gli algoritmi di clustering, clustering.py .

Ho notato che diverse funzioni del modulo riguardano solo l'algoritmo di spostamento medio, quindi ho pensato che avrebbe avuto senso raggrupparle in una classe MeanShift .

Al momento, sembra qualcosa del tipo:

class MeanShift:

    def cluster(args):
        *code*

    def update_mean_position(args):
        *code*

La funzione update_mean_position è chiamata solo dalla funzione cluster , quindi mi chiedo se dovrebbe iniziare con un trattino basso per mostrare che è solo per uso interno.

Inoltre, è accettabile organizzare queste funzioni in una classe, o dovrebbero semplicemente rimanere come funzioni di primo livello nel modulo clustering ?

    
posta Vermillion 18.06.2018 - 22:18
fonte

1 risposta

1

Also, is it acceptable to organize these functions in a class, or should they just remain as top-level functions in the clustering module?

Il solito consiglio è usare una classe quando hai dati comuni e funzioni comuni, se la tua classe MeanShift è interamente 'statica' potrebbe essere lasciata al massimo livello, ma se ha stato dovrebbe essere probabilmente una classe.

Qualsiasi organizzazione che aiuti a migliorare la chiarezza del codice è buona, anche se ciò significa che hai una classe 'statica' che sta organizzando metodi 'statici'!

    
risposta data 19.06.2018 - 00:02
fonte

Leggi altre domande sui tag