J'ai self.some_field = [] dans ma classe
Je me demande s'il existe un moyen de rendre cette liste en lecture seule comme une propriété?Comment faire un champ de classe [liste] en lecture seule en python?
3
A
Répondre
7
Vous devez le faire, en effet, une propriété ...: par exemple, dans __init__
self._some_field = []
, puis plus tard dans le corps de la classe:
@property
def some_field(self):
return self._some_field
Notez que cela ne pas rendre la liste elle-même immuable: ce qui échouera est une affectation comme, disons,
self.some_field = 'bah'
pas l'appel d'un mutator, comme, par exemple,
self.some_field.append('blah')
Si vous voulez rendre le champ immuable, il ne peut pas être une liste, par définition (puisque la liste est une séquence mutable) - Il doit s'agir d'un autre type de séquence (immuable) que vous devez définir à cette fin.
1
Si vous voulez dire l'attribut, alors faites-en une propriété en lecture seule. Si vous voulez dire la liste elle-même, utilisez un tuple à la place, car ils sont immuables.
Questions connexes
- 1. Python entier en tampon en lecture seule
- 2. Comment faire des requêtes WMI en lecture seule, en lecture seule, en C#?
- 3. Comment faire un fichier réseau partagé en lecture seule en utilisant Python?
- 4. Comment créer une propriété de classe en lecture seule en Python?
- 5. SVN: Comment faire un fichier en lecture seule avec subversion?
- 6. Comment faire un contrôle Windows Forms en lecture seule?
- 7. Comment faire un dépôt git en lecture seule?
- 8. Comment faire un élément individuel dans CheckedlistBox en lecture seule
- 9. Sharepoint Créer une liste personnalisée en lecture seule
- 10. Rendre l'affichage en liste SharePoint 2007 en lecture seule
- 11. Lecture seule liste déroulante
- 12. Comment définir un DateTimePicker en lecture seule?
- 13. Propriétés en lecture seule au niveau de la classe en Python
- 14. Comportement impair dans Django Form (champ/widget en lecture seule)
- 15. Delphi ClientDataSet en lecture seule
- 16. Valeurs CharField disparaissant après la sauvegarde (champ en lecture seule)
- 17. En lecture seule OpenFileDialog
- 18. PropertyGrid en lecture seule
- 19. En lecture seule d'une LinkedList. Comment?
- 20. Faire une liste déroulante en lecture seule, mais en soumettant toujours sa valeur
- 21. comment faire dropdown dans asp.net mvc comme en lecture seule?
- 22. Création de journaux en lecture seule avec python
- 23. propriété en lecture seule
- 24. Comment faire une zone de liste déroulante en lecture seule dans Access 2000?
- 25. Comment créer dynamiquement un contrat en lecture seule en Perl?
- 26. Comment copier un répertoire en lecture seule en Perl?
- 27. Zone de liste déroulante Windows Forms en lecture seule
- 28. Comment créer un champ de base de données en lecture seule dans Rails?
- 29. Puis-je nettoyer en toute sécurité après un champ d'objet en lecture seule?
- 30. ScriptControlDescriptor.AddProperty & Propriétés en lecture seule