Cambiar argumentos dentro de las clases

Disponible con una licencia de Spatial Analyst.

Puede desear cambiar un argumento individual para un parámetro debido a que ha obtenido información adicional sobre el fenómeno que estaba modelando, desearía probar escenarios alternativos, realizar análisis de sensibilidad o de error o simplemente le gustaría corregir un error. A través de una serie de ejemplos, aprenderá cómo cambiar gran variedad de argumentos de entrada.

Cambiar propiedades o valores de clase

  • Para cambiar un valor de un objeto de clase, puede sólo volver a crear la clase.
    neighborhood = NbrCircle(5, "MAP")
    
    # The neighborhood object can be changed from a circle to a rectangle
    neighborhood = NbrRectangle(3, 3, "MAP")
  • Un argumento simple puede cambiarse directamente al tener acceso a la propiedad que almacena el argumento dentro del objeto.
    >>> 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 argumento numérico almacenado como una propiedad dentro de un objeto puede cambiarse algebraicamente.
    circle = NbrCircle(5, "CELL")
    
    # The following statement changes the radius to 5.5
    circle.radius = circle.radius * 1.1

    También puede utilizar un operador de asignación para cambiar el valor.

    # The following statement changes the radius to 5.5
    circle.radius *= 1.1

Cambiar clases que se crean con listas de python

  • Puede agregar elementos a la lista inFeatures para las clases que se crean de listas.
    >>> arguments = TopoStream(["features1", "features2"]) 
    
    >>> arguments.inFeatures.append("features3")
    >>> arguments.inFeatures += ["features4", "features5"]
    
    >>> print(arguments.inFeatures)
    ['features1', 'features2', 'features3', 'features4', 'features5']
  • También puede eliminar un elemento de la lista de entrada.
    >>> arguments = TopoStream(["features1", "features2", "features3", "features4", "features5"])
    >>> del arguments.inFeatures[2]
    
    >>> print(arguments.inFeatures)
    ['features1', 'features2', 'features4', 'features5']
  • Puede cambiar una entrada específica dentro de la lista.
    >>> arguments = TopoStream(["features1", "features2"]) 
    >>> arguments.inFeatures[1] = "lake2"
    
    >>> print(arguments.inFeatures)
    ['features1', 'lake2']

Clases que se crean con listas dentro de listas

  • Puede cambiar una entrada en una tabla de nueva representación (modificando las entradas dentro de listas internas) para las clases que se crean de listas dentro listas.
    >>> 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]]
  • Una entrada individual en una tabla de nueva representación se puede cambiar algebraicamente.
    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
  • Esto muestra cómo cambiar una fila individual en la tabla de nueva representación (modificar las listas internas completas).
    >>> 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]]
  • Esto muestra cómo agregar entradas a una tabla de nueva representación (agregar una lista interior).
    >>> 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]]
  • Esto muestra cómo eliminar entradas de una tabla de nueva representación (eliminar una lista interior).
    >>> 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]]

Clases que se crean a partir de una serie de clases dentro de una lista

  • Puede cambiar un punto específico dentro de la lista para una clase que se crea de una serie de clases dentro de una lista.
    >>> 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, #, #)>]

Temas relacionados