Страницы

Добро пожаловать

< Выберите раздел для просмотра

четверг, 18 августа 2016 г.

Python в ArcGIS. Функции и передача параметров в них. 18

    Функция с позиционными параметрами:

"""
def func_1(a, b):
    print a, b

func_1(10, 20)
"""



    Функция с произвольным количеством аргументов:

"""
def func_2(*args):
    print type(args)
    print args

func_2(10, 20, 30, 40)
func_2([10, 20, 30, 40])
func_2(*[10, 20, 30, 40])
"""


    Функция с именованными аргументами:

"""
def func_3(a=10, b=20):
    print a, b

func_3()
func_3(100, 200)
func_3(100)
func_3(a=100, b=200)
func_3(b=200)
"""


    Функция с произвольным количеством именованных аргументов:

"""
def func_4(**kwargs):
    print kwargs

func_4()
func_4(b=1, d=2)
e = {'a1': 1, 'a2': 2}
func_4(**e)
"""


   Теперь глянем на пример всего вместе:

"""
def func_5(a, b, *args, **kwargs):
    print a, b, args, kwargs

func_5(1, 2)
func_5(1, 2, 3, 4)
func_5(1, 2, 3, 4, e=5, f=6, g=7)
"""


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

"""
# AddField_management (in_table, field_name, field_type, {field_precision}, {field_scale}, {field_length}, {field_alias}, {field_is_nullable}, {field_is_required}, {field_domain})
# Инструмент имеет 3 обязательных параметра и 7 необязательных 
# про особенности параметров см. на официальном сайте ArcGIS

arcpy.AddField_management('table_1', 'name_1', 'TEXT')
arcpy.AddField_management('table_1', 'name_1', 'TEXT', '', '', '', '', '', '', '')
t = ('table_1', 'name_1', 'TEXT')
arcpy.AddField_management(*t)

arcpy.AddField_management('table_1', 'name_2', 'TEXT', field_length='255')
arcpy.AddField_management(field_name='name_2', field_length='255', field_type='TEXT', in_table='table_1')
arcpy.AddField_management('table_1', 'name_2', 'TEXT', '', '', '255', '', '', '', '')
w = ('table_1', 'name_2', 'TEXT')
arcpy.AddField_management(*w+('', '', '255'))

"""

Комментариев нет:

Отправить комментарий