LINUX.ORG.RU

Стиль именования аргументов функции


0

2

Пытаюсь выработать некий сабж. Пример: Есть набор строк (пусть строки представляют собой записи из лога, допустим веб-сервера) Этот набор я хочу обработать в функции. Предварительно я делаю массив с ключами, например:

Data=[]
Data[0]={'time':'','status':'','url':''}
Добавляю данные в этот массив (в моем случае словарь, т.к. python). далее пишу функцию которая обрабатывает этот массив, и тут начинается ступор. Например в функцию надо передать url и время из массива , как назвать аргументы функции? Просто def func(x,y) неинформативно, def func(url,time) снижает читаемость, на мой взгляд. Как их обозвать? Написанную стену текста оформить в виде запроса к гуглу - не осилил.


Ответ на: комментарий от geekless

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

K-Vrat
() автор топика
Ответ на: комментарий от K-Vrat

что будет когда я начну читать этот код через месяц или его начнет читать кто-то другой.

Что лучше, везде называть вещи своими одинаковыми именами или придумать для каждой 10500 названий алиасов?

mashina ★★★★★
()
Ответ на: комментарий от K-Vrat

> что будет когда я начну читать этот код через месяц или его начнет читать кто-то другой.

нормально все будет.

Rastafarra ★★★★
()
Ответ на: комментарий от K-Vrat

1)def func(x,y)
2)def func(url,time)
В каком из вариантов другому программисту будет сразу понятно, какие параметры и в какой последовательности ждет функция?

Если не любишь одинаковые названия, сделай так: def func(in_url,in_time)

aydar ★★★★★
()
Ответ на: комментарий от aydar

> В каком из вариантов другому программисту будет сразу понятно, какие параметры и в какой последовательности ждет функция?

в обоих. первый вариант принимает координаты x и y, второй url и время :)

// КО

waker ★★★★★
()
Ответ на: комментарий от K-Vrat

по своему опыту чтения - делай url и time, все читается нормально - область видимости не зря придумали

lazyklimm ★★★★★
()
Ответ на: комментарий от waker

Насколько я понял, речь шла об одной и той же функции обработки записей логов сервера. Для функции обработки записей сервера def func(x,y) - плохое название, но оно идеально подходит для функции обработки координат на плоскости

aydar ★★★★★
()
Ответ на: комментарий от Rastafarra

Главное в этом примере, что переменные из области видимости модуля (x,y)имеют такие же имена как переменные в области видимости функции(тоже х,y)

K-Vrat
() автор топика
Ответ на: комментарий от Rastafarra

Новое не придумываю, но присвоении начального значения заново - думаю

K-Vrat
() автор топика

Как их обозвать?

Конечно, url и time.

def func(url,time) снижает читаемость

В сравнении с def func(x,y) повышает.

F
()
def func(**data):
    print url, time

Не? А вообще, пиши docstring и хоть ж...й называй.

anonymous
()

однозначно называть так же как и ключи массива + сток для лишних ключей

def f(url,time,**others) : ...

потом будешь вызывать f(**D) ни о чем не задумываясь. Это наверное наиболее изящное решение.

AIv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.