Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Parametrisoitujen Dekorointien Kirjoittaminen | Python-iterointien ja Dekoraattoreiden Hallinta
Funktionaalisen Ohjelmoinnin Käsitteet Pythonissa

bookParametrisoitujen Dekorointien Kirjoittaminen

Pyyhkäise näyttääksesi valikon

Kun haluat, että dekorointisi käyttäytyy eri tavoin syötteen perusteella, sinun tulee luoda parametrisoitu dekorointi. Toisin kuin tavalliset dekoroinnit, jotka ottavat vain funktion argumenttina, parametrisoidut dekoroinnit hyväksyvät omat argumenttinsa, jolloin voit ohjata niiden toimintaa dynaamisesti. Tämä on erityisen hyödyllistä, kun haluat käyttää samaa dekorointia useissa tilanteissa eri asetuksilla.

Parametrisoidun dekoroinnin rakenne:

  1. Uloin funktio vastaanottaa dekoroinnin argumentit;
  2. Välikerroksen funktio on varsinainen dekorointi, joka ottaa koristeltavan funktion;
  3. Sisäfunktio käärii ja ohjaa alkuperäisen funktion suoritusta.

Tämä kerroksittainen lähestymistapa mahdollistaa argumenttien välittämisen dekoroinnille, jolloin ne ovat käytettävissä, kun koristeltua funktiota kutsutaan.

12345678910111213141516171819202122
# Outer function: accepts the decorator argument 'times' def repeat(times): # The actual decorator that takes the function to be decorated def decorator(func): # Inner function: wraps and controls the execution of 'func' def wrapper(*args, **kwargs): result = None # Call the original function 'times' times for _ in range(times): result = func(*args, **kwargs) return result # Return the wrapper to replace the original function return wrapper # Return the decorator function return decorator # Apply the repeat decorator @repeat(3) def say_hello(): print("Hello!") say_hello()
copy

1. Miten parametrisoitu dekorointi eroaa tavallisesta dekoroinnista?

2. Miksi dekoratorille kannattaa välittää argumentteja?

question mark

Miten parametrisoitu dekorointi eroaa tavallisesta dekoroinnista?

Valitse oikea vastaus

question mark

Miksi dekoratorille kannattaa välittää argumentteja?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 4. Luku 3
some-alt