Функция с позиционными параметрами:
"""
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)
"""
"""
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'))
"""
Комментариев нет:
Отправить комментарий