Modification d'arguments dans des classes
Vous pouvez souhaiter modifier un argument particulier d'un paramètre parce que vous avez obtenu des informations supplémentaires à propos des phénomènes que vous modélisiez, ou parce que vous aimeriez tester des scénarios alternatifs, effectuer une analyse d'erreur ou de sensibilité ou simplement corriger une erreur. Par une série d'exemples, vous apprendrez comment modifier la grande variété d'arguments en entrée.
Modification des valeurs ou des propriétés de classe
- Pour modifier une valeur d'un objet de classe, vous pouvez simplement recréer la classe.
neighborhood = NbrCircle(5, "MAP") # The neighborhood object can be changed from a circle to a rectangle neighborhood = NbrRectangle(3, 3, "MAP")
- Un argument seul peut être modifié directement en accédant à la propriété qui stocke cet argument dans l'objet.
>>> neighborhood = NbrCircle(5, "MAP") >>> # The following statements change the radius to 7 and the units to CELL >>> neighborhood.radius = 7 >>> neighborhood.units = "CELL" >>> print neighborhood CIRCLE 7 CELL
- Un argument numérique stocké en tant que propriété dans un objet peut être modifié de manière algébrique.
circle = NbrCircle(5, "CELL") # The following statement changes the radius to 5.5 circle.radius = circle.radius * 1.1
Vous pouvez également utiliser un opérateur d'affectation pour modifier la valeur.
# The following statement changes the radius to 5.5 circle.radius *= 1.1
Modification des classes créées à l'aide de listes Python
- Vous pouvez ajouter des éléments à la liste inFeatures pour les classes créées à partir des listes.
>>> arguments = TopoStream(["features1", "features2"]) >>> arguments.inFeatures.append("features3") >>> arguments.inFeatures += ["features4", "features5"] >>> print arguments.inFeatures ['features1', 'features2', 'features3', 'features4', 'features5']
- Vous pouvez également supprimer un élément dans la liste des entrées.
>>> arguments = TopoStream(["features1", "features2", "features3", "features4", "features5"]) >>> del arguments.inFeatures[2] >>> print arguments.inFeatures ['features1', 'features2', 'features4', 'features5']
- Vous pouvez modifier une entrée particulière dans la liste.
>>> arguments = TopoStream(["features1", "features2"]) >>> arguments.inFeatures[1] = "lake2" >>> print arguments.inFeatures ['features1', 'lake2']
Classes créées à l'aide de listes dans des listes
- Vous pouvez modifier une entrée dans une table de classification (modification d'entrées dans des listes intérieures) pour les classes créées à partir de listes dans des listes.
>>> remap = RemapValue([[1, 11], [2, 12], [3, 13]]) >>> # Change the newValue 12 in the second reclassification to a 10 >>> remap.remapTable[1][1] = 10 >>> print remap.remapTable [[1, 11], [2, 10], [3, 13]]
- Une entrée individuelle dans une table de classification peut être modifiée de manière algébrique.
remap = RemapRange([[1, 10, 5], [10, 20, 8], [20, 30, 10]]) # The following statement increases the endValue 20 by 5 percent remap.remapTable[1][1] *= 1.05 # Another implementation of increasing an entry by 5 percent remap.remapTable[1][1] = remapTable.table[1][1] * 1.05
- Cet exemple montre comment modifier une ligne individuelle dans la table de classification (modification de listes intérieures entières).
>>> remap = RemapValue([[1, 11], [2, 12], [4, 13]]) >>> # Change the second reclassification [2, 12] to [3,10] >>> remap.table[1] = [3, 10] >>> print remap.remapTable [[1, 11], [3, 10], [4, 13]]
- Cet exemple montre comment ajouter des entrées à une table de classification (ajout d'une liste intérieure).
>>> remap = RemapValue([[1, 11], [2, 12], [3, 13]]) >>> # Add a forth reclassification, [4, 14] to the end >>> remap.remapTable.append([4, 14]) >>> # Another approach for adding a row >>> remap.remapTable += [[5, 15]] >>> print remap.remapTable [[1, 11], [2, 12], [3, 13], [4, 14], [5, 15]]
- Cet exemple montre comment supprimer des entrées d'une table de classification (suppression d'une liste intérieure).
>>> remap = RemapValue([[1, 11], [2, 12], [3, 13], [4, 14], [5, 15]]) >>> # Delete the entire second reclassification >>> del remap.remapTable[1] >>> print remap.remapTable [[1, 11], [3, 13], [4, 14], [5, 15]]
Classes créées à partir d'une série de classes dans une liste
- Vous pouvez modifier un point spécifique dans la liste pour une classe créée à partir d'une série de classes dans une liste.
>>> points = [Point(0, 5), Point(15, 175)] >>> # Change the X value of the second input to 25 >>> points[1].X = 25 >>> print points [<Point (0.0, 5.0, #, #)>, <Point (25.0, 175.0, #, #)>]
Rubriques connexes
7/10/2012