Изменение аргументов в классах

Доступно с лицензией Spatial Analyst.

Вам может понадобиться изменить отдельный аргумент параметра, если у вас появилась дополнительная информация о явлении, которое вы моделируете, если вы хотите протестировать альтернативные сценарии, выполнить анализ ошибок или чувствительности или просто исправить ошибку. На ряде примеров вы научитесь изменять самые различные входные аргументы.

Изменение значений или свойств классов

  • Чтобы изменить значение объекта класса, можно просто заново создать класс.
    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, #, #)>]

Связанные разделы