Соглашения docstring находятся в PEP-257 с гораздо большей детализацией, чем PEP-8.
Однако докстры, по-видимому, гораздо более личны, чем другие области кода. У разных проектов будет свой собственный стандарт.
Я склонен всегда включать docstrings, потому что они склонны демонстрировать, как использовать функцию и что она делает очень быстро.
Я предпочитаю сохранять согласованность, независимо от длины строки. Мне нравится, как выглядит код, когда отступы и интервалы согласованы. Это означает, что я использую:
def sq(n):
"""
Return the square of n.
"""
return n * n
Over:
def sq(n):
"""Returns the square of n."""
return n * n
И, как правило, не комментирует первую строку в более длинных docstrings:
def sq(n):
"""
Return the square of n, accepting all numeric types:
>>> sq(10)
100
>>> sq(10.434)
108.86835599999999
Raises a TypeError when input is invalid:
>>> sq(4*'435')
Traceback (most recent call last):
...
TypeError: can't multiply sequence by non-int of type 'str'
"""
return n*n
Значение Я нахожу docstrings, которые начинаются так, как будто это беспорядочно.
def sq(n):
"""Return the squared result.
...
Небольшая корректировка ответов от ARobertson и Kenneth Wilson, который работал на меня.
Выполнение R 3.6.0, с библиотекой (tidyverse) и библиотекой (dplyr) в моей среде:
library(tidyverse)
library(dplyr)
> df %<>% mutate_if(is.character, as.numeric)
Error in df %<>% mutate_if(is.character, as.numeric) :
could not find function "%<>%"
я провел некоторое быстрое исследование и нашел это примечание в Hadley" tidyverse руководство по стилю ".
<час>magrittr пакет обеспечивает % <> оператор % как ярлык для изменения объекта на месте. Избегайте этого оператора.
# Good x <- x %>% abs() %>% sort() # Bad x %<>% abs() %>% sort()
Решение
На основе того руководства по стилю:
df_clean <- df %>% mutate_if(is.character, as.numeric)
<час> Рабочий пример
> df_clean <- df %>% mutate_if(is.character, as.numeric)
Warning messages:
1: NAs introduced by coercion
2: NAs introduced by coercion
3: NAs introduced by coercion
4: NAs introduced by coercion
5: NAs introduced by coercion
6: NAs introduced by coercion
7: NAs introduced by coercion
8: NAs introduced by coercion
9: NAs introduced by coercion
10: NAs introduced by coercion
> df_clean
# A tibble: 3,599 x 17
stack datetime volume BQT90 DBT90 DRT90 DLT90 FBT90 RT90 HTML90 RFT90 RLPP90 RAT90 SRVR90 SSL90 TCP90 group
<dbl> <dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
type.convert()
Преобразовывают объект данных в логический, целочисленное, числовое, сложное, символ или фактор как соответствующий.