Ho trovato molti collegamenti su metaclassi e la maggior parte di essi menziona che sono utili per implementare metodi factory. Puoi mostrarmi un esempio dell'utilizzo di metaclassi per implementare il modello di progettazione?Implementazione dello schema di progettazione factory usando metaclasses in python
risposta
Mi piacerebbe sentire i commenti della gente su questo, ma penso che questo è un esempio di ciò che si vuole fare
class FactoryMetaclassObject(type):
def __init__(cls, name, bases, attrs):
"""__init__ will happen when the metaclass is constructed:
the class object itself (not the instance of the class)"""
pass
def __call__(*args, **kw):
"""
__call__ will happen when an instance of the class (NOT metaclass)
is instantiated. For example, We can add instance methods here and they will
be added to the instance of our class and NOT as a class method
(aka: a method applied to our instance of object).
Or, if this metaclass is used as a factory, we can return a whole different
classes' instance
"""
return "hello world!"
class FactorWorker(object):
__metaclass__ = FactoryMetaclassObject
f = FactorWorker()
print f.__class__
Il risultato che vedrai è: digita 'str'
Non ce n'è bisogno. È possibile override a class's __new__()
method per restituire un tipo di oggetto completamente diverso.
Non penso che tu possa con metaclassi ... (forse puoi - se è così fammi sapere e avrò imparato qualcosa :)) – RyanWilcox
Potete trovare alcuni esempi utili a wikibooks/python, here e here
quelli sono esattamente i collegamenti in cui sono incappato. Non sono riuscito a trovare un esempio concreto di fabbrica (sebbene tutti lo menzionino) in nessuno di essi ... – olamundo
- 1. Implementazione di breadcrumb in Python usando Flask?
- 2. Progettazione dello schema HBase per supportare al meglio query specifiche
- 3. Progettazione dello stato della macchina Python
- 4. Progettazione e implementazione dell'archiviazione YouTube
- 5. Implementazione Python del modello di progettazione del pool di oggetti
- 6. Schema: implementazione di n-argomento comporre usando fold
- 7. Schema di progettazione osservatore in C++
- 8. Schema Mongoose all'interno dello schema
- 9. Implementazione Schema/Lisp di Windows
- 10. Quale schema di progettazione devo utilizzare in questa domanda?
- 11. Progettazione di uno schema di database localizzato
- 12. Utilizzo dello schema Let in
- 13. Modifica dello schema di System.Uri
- 14. Problemi di implementazione del modello di progettazione di fabbrica
- 15. Convalida dello schema JSON
- 16. Qual è lo schema di progettazione "Dispatcher"?
- 17. convalida dello schema XML
- 18. Qual è il modo migliore, usando lo schema di progettazione "Stato", per cambiare stato?
- 19. Esiste uno schema di progettazione per questo?
- 20. Progettazione schema collaborativo online (utilizzo di google docs?)
- 21. datacipi dello schema sails-mysql
- 22. Progettazione dello schema del database per un sistema di contabilità a partita doppia?
- 23. Come ottenere il nome dello schema dall'oggetto schema in Tridion?
- 24. Implementazione Netcat in Python
- 25. Implementazione del pattern di repository in Python?
- 26. Python: aggiunta degli attributi dello schema xml con lxml
- 27. Schema di schema dello schema del database per i dati che si fondono
- 28. Evoluzione dello schema in formato parquet
- 29. DBCC CHECKIDENT - Consapevole dello schema?
- 30. Progettazione multiprocessing Python
puoi aggiungere un po 'di "fattorizzazione" all'esempio, cioè una personalizzazione applicata agli oggetti creati? – olamundo