Używanie funkcji wbudowanych w funkcji

Używanie funkcji wbudowanych w funkcji
AL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Witam, przychodzę do was z kolejnym zapytaniem, mianowicie czy można w funkcji(chodzi mi zdefiniowanie jakiejs funkcji) uzywać funkcji wbudowanych?
przykładowy kod który znalazłem na jednym z forum:
U mnie, w ogóle po zdefiniowaniu funkcji nie mogę użyć .copy oraz .update 🙁
Może dla niektorych wyda sie to smieszne, ze można w ogóle zadać takie pytanie ale totalnie nigdzie nie moge znaleźć na to odpowiedzi, a ta sprawa strasznie mnie nurtuje, z góry dziękuje za pomoc :)

Kopiuj
def merge_two_dicts(x, y):
    """Given two dictionaries, merge them into a new dict as a shallow copy."""
    z = x.copy()
    z.update(y)
    return z
lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5023
0

Co to znaczy, że nie możesz użyć copy i update ?

Spearhead
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1007
0

Dlaczego nie przetestujesz sobie empirycznie w izolowanych warunkach:

Kopiuj
>>> def merge_two_dicts(x, y):
...     """Given two dictionaries, merge them into a new dict as a shallow copy."""
...     z = x.copy()
...     z.update(y)
...     return z
... 
>>> 
>>> merge_two_dicts({'a': 12}, {'b': 10})
{'a': 12, 'b': 10}

Działa? Działa. Można? Ano najwyraźniej można. Z tego wynika, że twój problem jest gdzie indziej. Na przykład wcale nie przekazujesz do funkcji słowników.

Kopiuj
>>> merge_two_dicts("not a dict", 1024)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in merge_two_dicts
AttributeError: 'str' object has no attribute 'copy'
ledi12
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Możesz używać funkcji wbudowanych. Ciało funkcji to tylko swojego rodzaju namespace w którym dowoli możesz wywoływać inne obiekty (Wszystko w pythonie jest obiektem). Co do Twojego problemu to powyższe funkcje to implementacja dla dict. Skoro nie działają, to znaczy, że to nie jest słownik, tak jak wspomniał mój przedmówca.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.