Così sto utilizzando i membri della classe statici in modo da poter condividere i dati tra i metodi di classe e metodi statici della stessa classe (ci sarà solo 1 istanza della classe). Capisco bene, ma mi chiedo solo quando i membri statici vengono inizializzati? È in importazione? Al primo utilizzo della classe? Perché io vado a chiamare i membri statici di questa classe da più di 1 modulo (quindi più di 1 istruzione import). Tutti i moduli che accedono ai metodi statici condividono gli stessi membri di dati statici? E se il mio principale cliente elimina l'istanza della mia classe, e poi ricrea (senza terminare tutto o ingegnose Re-importazione), i miei membri dati saranno conservati?i membri della classe statici Python
12
A
risposta
13
Essi verranno inizializzate in fase di definizione della classe, che avverrà al momento dell'importazione se si sta importando la classe come parte di un modulo. Questo assumendo uno stile di definizione di membro della classe "statico" in questo modo:
class Foo:
bar = 1
print Foo.bar # prints '1'
Si noti che, essendo questo un membro della classe statica, non v'è alcuna necessità di creare un'istanza della classe.
L'istruzione import eseguirà il contenuto di un modulo esattamente una volta, non importa quante volte o dove viene eseguito.
Sì, i membri statici sarà condivisa da alcun codice accedervi.
Sì, i membri statici di una classe verranno mantenute se si elimina un oggetto il cui tipo è quella classe:
# Create static member
class Foo:
bar = 1
# Create and destroy object of type Foo
foo = Foo()
del foo
# Check that static members survive
print Foo.bar # Still prints '1'
Problemi correlati
- 1. I membri della classe statici sono bloccati?
- 2. I membri statici aiutano l'efficienza della memoria?
- 3. Inizializzazione membri classe Python
- 4. In classe inizializzazione di membri dati statici
- 5. Un caso curioso con riferimenti e membri della classe statici
- 6. Namespace e membri della classe statici che collega
- 7. Classe template C++ con membri statici - Uguale a tutti i tipi della classe
- 8. Quando vengono inizializzati i membri di classe C++ statici?
- 9. Blocco di membri statici di una classe
- 10. membri statici e serializzazione potenziata
- 11. Proguard mantiene i membri della classe
- 12. i membri della classe ambigua vb.net
- 13. Attributi personalizzati per i membri della classe
- 14. I membri della classe occupano memoria?
- 15. Dati statici Inizializzazione dei membri
- 16. Definire i membri statici in C++
- 17. Distruzione di membri di classe statici nella memoria locale Thread
- 18. Metodi statici di classe Python
- 19. Come e quando vengono eliminati i membri statici C#?
- 20. Differenza tra membri statici e non statici?
- 21. Inizializzazione di membri statici di una classe basata su modelli
- 22. I decoratori Python sui membri della classe falliscono quando il meccanismo decoratore è una classe
- 23. Python classe che eredita multiprocessing, problemi con i membri della classe di accesso
- 24. Garbage Collection di membri statici
- 25. Membri di classe - Java vs Python
- 26. Le classi generiche condividono membri statici?
- 27. Memorizza tutti i membri della classe modello nella sessione
- 28. A cosa servono i puntatori ai membri della classe?
- 29. Come faccio a scorrere i membri della classe?
- 30. i membri della classe VB.NET pubbliche per default
Sì mi rendo conto che non c'è bisogno di creare un'istanza della classe. Ma l'istanza della classe ha bisogno di accedere a questi membri così come ad altri moduli. La mia preoccupazione è che sto importando questo modulo da diversi altri moduli. Ciò significa che i membri statici vengono ripristinati per tutti i moduli? O ogni modulo che lo importa avrà il proprio set di membri statici? – Falmarri
La tua modifica ha risposto alla mia domanda, grazie =] – Falmarri