Ändern von Argumenten innerhalb von Klassen
Sie möchten möglicherweise ein einzelnes Argument eines Parameters ändern, weil Sie weitere Informationen zu den Phänomenen erhalten haben, die Sie modelliert haben, weil Sie alternative Szenarien testen möchten, weil Sie eine Fehler- oder Empfindlichkeitsanalyse ausführen möchten oder weil Sie einfach einen Fehler korrigieren möchten. In einer Reihe von Beispielen erfahren Sie, wie die Vielzahl von Eingabeargumenten geändert wird.
Ändern von Klassenwerten oder -eigenschaften
- Um einen Wert eines Klassenobjekts zu ändern, können Sie einfach die Klasse neu erstellen.
neighborhood = NbrCircle(5, "MAP") # The neighborhood object can be changed from a circle to a rectangle neighborhood = NbrRectangle(3, 3, "MAP")
- Ein einzelnes Argument kann direkt durch Zugreifen auf die Eigenschaft geändert werden, in dem das Argument innerhalb des Objekts gespeichert wird.
>>> 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
- Ein numerisches Argument, das als Eigenschaft innerhalb eines Objekts gespeichert ist, kann algebraisch geändert werden.
circle = NbrCircle(5, "CELL") # The following statement changes the radius to 5.5 circle.radius = circle.radius * 1.1
Sie können den Wert auch mit Hilfe eines Zuweisungsoperators ändern.
# The following statement changes the radius to 5.5 circle.radius *= 1.1
Ändern von mit Pythonlisten erstellten Klassen
- Sie können der Liste inFeatures Elemente für Klassen hinzufügen, die aus Listen erstellt wurden.
>>> arguments = TopoStream(["features1", "features2"]) >>> arguments.inFeatures.append("features3") >>> arguments.inFeatures += ["features4", "features5"] >>> print arguments.inFeatures ['features1', 'features2', 'features3', 'features4', 'features5']
- Sie können auch ein Element aus der Eingabeliste löschen.
>>> arguments = TopoStream(["features1", "features2", "features3", "features4", "features5"]) >>> del arguments.inFeatures[2] >>> print arguments.inFeatures ['features1', 'features2', 'features4', 'features5']
- Sie können einen bestimmten Eintrag innerhalb der Liste ändern.
>>> arguments = TopoStream(["features1", "features2"]) >>> arguments.inFeatures[1] = "lake2" >>> print arguments.inFeatures ['features1', 'lake2']
Mit Listen innerhalb von Listen erstellte Klassen
- Sie können einen Eintrag in einer Remap-Tabelle für Klassen ändern (durch Ändern von Einträgen innerhalb innerer Listen), die aus Listen innerhalb von Listen erstellt wurden.
>>> 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]]
- Ein einzelner Eintrag in einer Remap-Tabelle kann algebraisch geändert werden.
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
- Hier wird dargestellt, wie eine einzelne Zeile in der Remap-Tabelle (durch Ändern vollständiger innerer Listen) geändert wird.
>>> 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]]
- Hier wird dargestellt, wie einer Remap-Tabelle Einträge hinzugefügt werden (durch Hinzufügen einer inneren Liste).
>>> 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]]
- Hier wird dargestellt, wie aus einer Remap-Tabelle Einträge gelöscht werden (durch Löschen einer inneren Liste).
>>> 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]]
Innerhalb einer Liste aus einer Reihe von Klassen erstellte Klassen
- Sie können einen bestimmten Punkt innerhalb der Liste für eine Klasse ändern, die innerhalb einer Liste aus einer Reihe von Klassen erstellt wurde.
>>> 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, #, #)>]
Verwandte Themen
7/10/2012