Benvenuti in Python! Sei molto lontano da C++ e Java, e questa è una buona cosa. ;)
Questo è un estratto da un excellent discourse on object-oriented programming da another StackOverflow volunteer:
rapida: fuori dalla parte superiore della testa, che cosa è la programmazione orientata agli oggetti su?
...
Se pensavate che una qualsiasi delle parole “incapsulamento”, “eredità”, “polimorfismo”, “information hiding”, “astrazione”, o “VTables”, si è sbagliato .
Se si pensava a una parola come "classe", "prototipo" o "tipo", si è ancora errati.
La programmazione orientata agli oggetti è circa oggetti: gruppi di stato e comportamento.
Perché sto citando questo? (Be ', per uno, è il Pythonic che piace le battute espressive che puoi ottenere dietro il messaggio di.) Perché qui sta la risposta alla tua domanda.
La "funzione di utilità" rappresenta effettivamente un comportamento che può essere espresso in modo corretto (parola chiave) come oggetto padre in un'erarchia ereditaria? Quindi con tutti i mezzi, metterlo in una classe. Ma non se questo significa la creazione di una classe solo per metterlo in.
Sei sempre partecipando programmazione orientata agli oggetti quando si scrive Python, perché tutto in Python è un oggetto. (Considera che puoi persino chiamare i metodi su letterali, ad es., 'hello'.upper()
.) Se ti strizzi gli occhi in un certo modo, puoi anche pensare che i tuoi moduli siano solo l'interno di una definizione di classe. Hanno il loro scopo, possibilmente funzioni a livello di modulo (modulo "metodi" se stai seguendo la mia analogia) e possibilmente classi interne. Il comportamento è estremamente simile perché è essenzialmente la stessa interfaccia.
Suggerisco di dare un'occhiata alla directory site-packages
in tutti i moduli e pacchetti disponibili. Otterrai delle ottime idee su come questo viene normalmente fatto e probabilmente vedrai decine di esempi di funzioni a livello di modulo che sono più o meno a cui ti riferisci quando dici "funzione di utilità".
Utilizzare solo l'ambito del modulo. http://dirtsimple.org/2004/12/python-is-not-java.html – PaulMcG
Più orientato agli oggetti non è un obiettivo in sé.Se il problema richiede oggetti, scrivi classi. Altrimenti, non farlo. –
Perché lo chiamano anche oggetto ** - programmazione orientata? Tutti quelli di cui tutti vogliono parlare sono ** classi **. –