1. Nauka
  2. /
  3. Kursy
  4. /
  5. Pisanie funkcji w Pythonie

Connected

ćwiczenie

Dobre praktyki dotyczące domyślnych argumentów

Twój współpracownik (który najwyraźniej nie przeszedł tego kursu) napisał funkcję dodającą kolumnę do DataFrame'a z biblioteki pandas. Niestety użył mutowalnej zmiennej jako domyślnej wartości argumentu! Pokaż mu lepsze rozwiązanie, żeby uniknąć niespodziewanego zachowania programu.

def add_column(values, df=pandas.DataFrame()):
  """Add a column of `values` to a DataFrame `df`.
  The column will be named "col_<n>" where "n" is
  the numerical index of the column.

  Args:
    values (iterable): The values of the new column
    df (DataFrame, optional): The DataFrame to update.
      If no DataFrame is passed, one is created by default.

  Returns:
    DataFrame
  """
  df['col_{}'.format(len(df.columns))] = values
  return df

Instrukcje

100 XP
  • Zmień domyślną wartość df na niemutowalną, zgodnie z dobrymi praktykami.
  • Zaktualizuj kod funkcji tak, aby nowy DataFrame był tworzony wtedy, gdy wywołujący nie przekaże żadnego.