Decorators with parameters in Python

Devanther

Top Contributor

Hallo,

kann mir jemand erklären was dieser Code macht. Für mich unglaublich schwer zu verstehen.
Was passiert bei der Ausgabe?
Kann mir jemand erklären SCHRITT FÜR SCHRITT erklären was der Code macht?

Was macht das?
@functools.wraps(func)

Ich weiss gar nicht wo ich anfangen soll, diesen Code zu verstehen!
Kann mir jemand schrittweise durch den Code helfen, es sind paar Zeilen Code aber trotzdem sehr schwer.
 

temi

Top Contributor
Code bitte hier in Codetags einfügen. Die drei Punkte rechts vom Smiley...

Python:
import functools

user = {'username': 'jose123', 'access_level': 'user'}


def user_has_permission(access_level):
    def my_decorator(func):
        @functools.wraps(func)
        def secure_func(panel):
            if user.get('access_level') == access_level:
                return func(panel)
        return secure_func
    return my_decorator


@user_has_permission('user')
def my_function(panel):
    """
    Allows us to retrieve the password for the admin panel.
    """
    return f'Password for {panel} panel is 1234.'


print(my_function.__name__)
print(my_function('movies'))
 
K

kneitzel

Gast
Evtl. willst Du Dir das einmal ansehen: https://realpython.com/primer-on-python-decorators/

Durch den Decorator wird die Funktion nur aufgerufen, denn user.get('access_level') == access_level.
Der Decorator hat den access_level als Parameter bekommen ('user').
Der Aufruf erfolgt mit dem func(...).

Aber das ist bei dem Link alles im Detail erläutert mit Beispielen. Die einfach einmal in Ruhe alles durchgehen um das zu verstehen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B 2 Wege Kommunikation zwischen Python/selenium Code und von Diesem in Seite eingefügten Javascript Code? Andere Programmiersprachen 8
V Adding many Python files and directories to a single dmg file Andere Programmiersprachen 2
H When deployed to Heroku, python setup.py egg info did not run successfully. Andere Programmiersprachen 0
M Objektorientierte Programmierung in Python Andere Programmiersprachen 3
D Python - Vererbung Andere Programmiersprachen 2
D Tensorflow, Python - Code verstehen Andere Programmiersprachen 2
D Python - Tensorflow installieren - Datei in Spyder öffnen Andere Programmiersprachen 6
Kirby.exe Relative Imports in Python Andere Programmiersprachen 10
A Python Andere Programmiersprachen 3
D Python (Machine Learning) - linspace Andere Programmiersprachen 7
B Python: Wie entferne ich Daten aus einer Datei und plotte sie? Andere Programmiersprachen 2
G python – getting bad request on tests using django rest framework Andere Programmiersprachen 1
Kirby.exe Python - JSON Sortieren Andere Programmiersprachen 5
Kirby.exe Python – Valid Characters in JSON Andere Programmiersprachen 6
L Fehlermeldung beim lesen aus einer Datei mit Python Andere Programmiersprachen 4
J Multidimensionales Array in Python Andere Programmiersprachen 11
Kirby.exe Python Anfänger schafft es nicht User Input einzulesen Andere Programmiersprachen 7
D Python - ModuleNotFoundError: Andere Programmiersprachen 6
G (Python) Werte einer ausgelesenen csv Datei verwalten Andere Programmiersprachen 2
D Python - pytz installieren Andere Programmiersprachen 5
M Python Objekte Andere Programmiersprachen 2
E Werte von Python an Java senden Andere Programmiersprachen 13
AssELAss Python Variable hochzählen? Andere Programmiersprachen 5

Ähnliche Java Themen

Neue Themen


Oben