Найти - Пользователи
Полная версия: Как упросить функцию ?
Начало » Python для новичков » Как упросить функцию ?
1 2 3
druidich92
добрый день. Пишу приложуху, и на сегодняшний день получилась такая функция
 def paraphine_full_distribution(self):
        '''
        распределение всего состава по 3 группам: нормальные парафины, изопарафины и водород
        учитываются все компоненты
        :param data: входные данные
        :type data: calculate_file
        '''
        izo_paraphine_data = [[], []]
        norm_paraphine_data = [[], []]
        h2_data = [
            [x for x in np.linspace(-300, -250, 6)],  [random.randint(0, 30) for x in range(0, 6)]]
        h2_data[1][2] = 100
        for i, item in enumerate(self.full_components):
            if item in self._criterion_norm_paraphine:
                norm_paraphine_data[0].append(item)
                norm_paraphine_data[1].append(
                    self.full_composition[self.level_composition][i])
            elif item in self._criterion_izo_paraphine:
                izo_paraphine_data[0].append(item)
                izo_paraphine_data[1].append(
                    self.full_composition[self.level_composition][i])
        return {'x': np.array(izo_paraphine_data[0]), 'y': np.array(izo_paraphine_data[1])},{'x': np.array(norm_paraphine_data[0]), 'y': np.array(norm_paraphine_data[1])},{'x': np.array(h2_data[0]), 'y': np.array(h2_data[1])}
т.е. я беру состав и разбиваю его на 3 группы и возвращаю группы.
можете подсказать, как этот код можно сделать более читаемый?
JOHN_16
Форматирование сделать. Не плохо помогает для этого flake8. Это конечно при условии что вы изучили рекомендации в PEP8.
druidich92
JOHN_16
Форматирование сделать. Не плохо помогает для этого flake8. Это конечно при условии что вы изучили рекомендации в PEP8.
а этим занимается vscode.
я прошу помощи, так как длина строк получается больше 79 символов
vic57
 >>> d ={
	1:2,
	2:3,
	3:4,
	}
>>> d
{1: 2, 2: 3, 3: 4}
>>> 
JOHN_16
druidich92
а этим занимается vscode.
ну судя по всему либо вы просто в тупую игнорируете, либо не умете им пользоваться - там же куча красным помечено!
Я приложил файл, что бы форматирование не ушло. Лучше? Если надо еще улучить - то уже правкой кода.
Rodegast
1) У тебя не функция, а метод.
2) Документация не соответствует действительности
3) Давай переменным короткие имена
4) Для отступов используй табуляцию
5) Используй переносы в словарях и списках
6) Изменяемое состояние это зло. Не надо его так агрессивно использовать! В место списков izo_paraphine_data и norm_paraphine_data создай 4 списка и нормально заполняй их не пользуясь индексами.

P.S. PEP8 это анахронизм не используй его.
JOHN_16
Rodegast
4) Для отступов используй табуляцию
т.е. не 4 пробела, а именно символ код табуляции \t ?
Rodegast
3) Давай переменным короткие имена
a, b, c наше все? Или как? Что ты советуешь?

druidich92
Rodegast
PEP8 это анахронизм не используй его.
вот с таким советом поаккуратнее. он не совсем корректен. В PEP8 есть некоторые устаревшие вещи, но не весь он сам.
Rodegast
> т.е. не 4 пробела, а именно символ код табуляции \t ?

Да. Табуляцией намного удобнее делать отступы.
1) Проще набирать.
2) Не надо считать пробелы.
3) Отступы лучше визуализированны. По этому ошибиться в их количестве практически не возможно.

> a, b, c наше все? Или как? Что ты советуешь?

Короткое имя не обязательно должно быть не осмысленным.

> В PEP8 есть некоторые устаревшие вещи, но не весь он сам.

PEP8 писан для узкого круга лиц, но им пользуются все кто попало, в этом смысле, да он актуален. Но это ещё не означает что его надо использовать.
JOHN_16
Rodegast
Да. Табуляцией намного удобнее делать отступы.
1) Проще набирать.
2) Не надо считать пробелы.
3) Отступы лучше визуализированны. По этому ошибиться в их количестве практически не возможно.
а ты в блокноте пишешь код? Любое адекватный редактор программного кода и IDE по нажатию на Tab делает заданный отступ. В каком таком случае ты вынужден будешь считать пробелы что бы это стало поводом переходить на табуляцию?
Rodegast
> Любое адекватный редактор программного кода и IDE по нажатию на Tab делает заданный отступ. В каком таком случае ты вынужден будешь считать пробелы что бы это стало поводом переходить на табуляцию?

1) Не любой. Вот я сейчас попробовал это проделать в Geany, по нажатию на Tab он как и положено ставит табуляцию в итоге пробелы и табуляция смешивается что не допустимо.
2) Я могу по ssh подключатся на удалённый сервер и что-то по мелочи править. Будет ли там установлен “адекватный редактор”?
3) На табуляцию я не переходил. Я ей постоянно пользовался.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB