Изменение аргументов в классах
Вам может понадобиться изменить отдельный аргумент параметра, если у вас появилась дополнительная информация о явлении, которое вы моделируете, если вы хотите протестировать альтернативные сценарии, выполнить анализ ошибок или чувствительности или просто исправить ошибку. На ряде примеров вы научитесь изменять самые различные входные аргументы.
Изменение значений или свойств классов
- Чтобы изменить значение объекта класса, можно просто заново создать класс.
neighborhood = NbrCircle(5, "MAP") # The neighborhood object can be changed from a circle to a rectangle neighborhood = NbrRectangle(3, 3, "MAP")
- Отдельный аргумент можно изменить непосредственно в свойстве объекта, где он хранится.
>>> 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
- Числовой аргумент, хранящийся как свойство в объекте, можно изменить алгебраически.
circle = NbrCircle(5, "CELL") # The following statement changes the radius to 5.5 circle.radius = circle.radius * 1.1
Для изменения значения можно также использовать оператор присваивания.
# The following statement changes the radius to 5.5 circle.radius *= 1.1
Изменение классов, созданных с помощью списков python
- Вы можете добавить элементы в список inFeatures для классов, которые были созданы из списков.
>>> arguments = TopoStream(["features1", "features2"]) >>> arguments.inFeatures.append("features3") >>> arguments.inFeatures += ["features4", "features5"] >>> print arguments.inFeatures ['features1', 'features2', 'features3', 'features4', 'features5']
- Вы также можете удалить элемент из входного списка.
>>> arguments = TopoStream(["features1", "features2", "features3", "features4", "features5"]) >>> del arguments.inFeatures[2] >>> print arguments.inFeatures ['features1', 'features2', 'features4', 'features5']
- Вы можете изменить конкретный элемент в списке.
>>> arguments = TopoStream(["features1", "features2"]) >>> arguments.inFeatures[1] = "lake2" >>> print arguments.inFeatures ['features1', 'lake2']
Классы, созданные с помощью списков в списках
- Вы можете изменить элемент в таблице перекодировки (изменяя элементы во внутренних списках) для классов, которые были созданы из списков в списках.
>>> 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]]
- Отдельный элемент в таблице перекодировки можно изменить алгебраически.
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
- Здесь показано, как изменить отдельную строку в таблице перекодировки (целиком изменяя внутренние списки).
>>> 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]]
- Здесь показано, как добавить элементы в таблицу перекодировки (добавляя внутренний список).
>>> 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]]
- Здесь показано, как удалить элементы из таблицы перекодировки (удаляя внутренний список).
>>> 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]]
Классы, созданные из ряда классов в списке
- Вы можете изменить конкретный пункт в списке для класса, который был создан из ряда классов в списке.
>>> 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, #, #)>]
Связанные темы
5/10/2014