23. Kurs Python 3 - dekoratory

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 ม.ค. 2025

ความคิดเห็น • 30

  • @igors1953
    @igors1953 4 ปีที่แล้ว +36

    Warto by było do każdej lekcji dodać zadanie domowe ;)

  • @rudystefan1714
    @rudystefan1714 3 ปีที่แล้ว +17

    Czy ktoś mi wytłumaczy po co się zagnieżdża wrappera w decoratorze skoro można zdefiniować po prostu:
    def wrapper(func):
    print("---------")
    func()
    print("---------")
    I wywołac go tak:
    wrapper(func)
    ?

  • @KoW
    @KoW  4 ปีที่แล้ว +2

    Zapraszam do skorzystania z pełnej "ścieżki programisty Python":
    strefakursow.pl/sciezki_kariery/python_developer.html?ref=87991

  • @marcinlewandowski6863
    @marcinlewandowski6863 2 ปีที่แล้ว

    Bardzo dobra seria. Uczę się jak w szkole. Pozdro

  • @bvbkubapoland6038
    @bvbkubapoland6038 4 ปีที่แล้ว +3

    Dobra robota, dzięki!

  • @krokodyldandee
    @krokodyldandee 2 ปีที่แล้ว

    Nareszcie zrozumiałem. Piona

  • @matibocian
    @matibocian 2 ปีที่แล้ว +2

    wrapper - McWrap - owinięte jedzonkoczyli owijać, zawijać xD

  • @sewerynziemlewski4386
    @sewerynziemlewski4386 2 ปีที่แล้ว +3

    Kopia i kalka z innych kursów. Nawet nazwy funkcji nie zmienione. Minus, ponieważ to tylko prezentacja budowy funkcji dekorującej, w dodatku na chama zerżnięta z pracy kogoś innego.

  • @adrianjoy99
    @adrianjoy99 ปีที่แล้ว

    Fajny film!

  • @leszekszymanowski4617
    @leszekszymanowski4617 3 ปีที่แล้ว +1

    O, kurczę!

  • @karolb8111
    @karolb8111 4 ปีที่แล้ว +12

    wrapper czyta się "raper", nie "wrejper". Poza tym super.

    • @romanniemczyk6290
      @romanniemczyk6290 3 ปีที่แล้ว +2

      no i co z tego. myślisz że angole czytają polskie wyrazy tak jak się czyta

    • @asas-eq5qt
      @asas-eq5qt 3 ปีที่แล้ว +5

      @@romanniemczyk6290 Polski nie jest językiem międzynarodowym, więc porównanie bez sensu.

  • @robertw.8480
    @robertw.8480 ปีที่แล้ว

    Dlaczego przy tak skonstruowanej funkcji nie działa samo wywołanie decorator(hello) ?

  • @michaludwig9174
    @michaludwig9174 4 ปีที่แล้ว +3

    Witam .Mam niestety dziwny błąd w przypadku drugiej prostszej metody(@).Pojawia sie to
    Traceback (most recent call last):
    File "D:/Michał/nowe1/run.py", line 14, in
    witaj()
    TypeError: 'NoneType' object is not callable

    • @michaludwig9174
      @michaludwig9174 4 ปีที่แล้ว

      Udało sie naprawić problem . Mianowic potrzebny był restart Ide. Ciekawe ze się tak program pogubił .Często sie tak zdarza?

    • @airzell7987
      @airzell7987 3 ปีที่แล้ว

      A mi cały czas nie działa, restartowałem wielokrotnie...

    • @5012DEV
      @5012DEV 3 ปีที่แล้ว

      @@airzell7987 W mojej opinii w tym temacie trzeba uważać na szczegóły, ja miałem (chyba) ten wyjątek gdy w funkcji dekoratora zwróciłem wywołanie wrapper'a(zamiast return wrapper to zrobiłem return wrapper()).

  • @falcons5613
    @falcons5613 2 ปีที่แล้ว

    Print(decorator(hello)())
    wyrzuca na końcu None.
    funkcja wrapper nic nie zwraca.
    Jak w takim przypadku temu zapobiec ? Owszem, decorator(hello)() nie wyrzuca none, ale przy print juz pojawia sie problem.

  • @bodan_max
    @bodan_max 4 ปีที่แล้ว

    Super! Dzięki!

  • @jacekc6179
    @jacekc6179 ปีที่แล้ว

    Dobre wykłady.
    Wrapper po angielsku to raper, a nie rejper.

  • @johnsmith-vz3vr
    @johnsmith-vz3vr 8 หลายเดือนก่อน

    wrapper czyta się "raper" nie 'wrejper'

  • @arek9430
    @arek9430 3 ปีที่แล้ว

    Mam problem ze zrozumieniem umiejscowienia nawiasów () oraz kiedy należy, a kiedy nie należy ich dawać. Jakby ktoś mógł mi pomóc to zrozumieć byłbym wdzięczny. Kolejna sprawa, to kod napisany niemal tak samo jak na filmie, ale z dodaniem nawiasu do wrapper(). Działa tak samo:
    def decorator(func):
    def wrapper():
    print("-----")
    func()
    print("-----")
    return wrapper()
    def hello():
    print("Hello World")
    decorator(hello)
    OUTPUT:
    -----
    Hello World
    -----

    • @___daantee___
      @___daantee___ 3 ปีที่แล้ว +2

      przez dodanie nawiasów na końcu funkcji dodajesz tak jakby jej wywołanie (to żeby zadziałała), a bez tylko przypisujesz ta funkcje bez wywołania(działania)

  • @japawka5714
    @japawka5714 4 ปีที่แล้ว +1

    Próbowałem udekorować funkcję, która przyjmuje jakieś argumenty (dodawanie a + b), to wyskakiwał błąd, że "wraper() takes 0 positional arguments but 2 were given" . Zmodyfikowałem i działa. Czy to poprawny sposób?
    def decorator(func):
    def wraper(*args):
    print('--------')
    func(*args)
    print('--------')
    return wraper
    def hello():
    print("Hello world")
    hello = decorator(hello)
    hello()
    @decorator
    def suma(a, b):
    print(a + b)
    suma(2, 8)

    • @agataskalska8759
      @agataskalska8759 4 ปีที่แล้ว

      def decorator(func):
      def wrapper(x,y):
      print("------")
      func(x,y)
      print("------")
      return wrapper
      @decorator
      def wpisz(x,y):
      print(x+y)
      To rozwiązało problem

  • @chujcinaimie
    @chujcinaimie 2 ปีที่แล้ว

    A dzięki własnie we flasku widzę to jest.

  • @tomaszw6449
    @tomaszw6449 2 ปีที่แล้ว

    zawijanie()

  • @gregorykoc1879
    @gregorykoc1879 ปีที่แล้ว

    slabo ;)