Klassenmethode mit Argumenten nur einmal umarmen
Posted: 15 May 2025, 22:09
Es gibt zwei Klassen und ich möchte Element einwickeln.
Es kann erreicht werden, wenn Wrapper keine Parameter enthalten und als einfacher Dekorator verwendet wurde, aber ich muss einen Param1 darin übergeben, obwohl es immer dasselbe ist. Erziele es.>
Code: Select all
class Foo:
_count = 0
def foo(self, param2):
self._count += param2
class Bar:
_collection = [Foo(), Foo(), Foo()]
def bar(self, param1, param2):
for item in self._collection:
wrapped_function = wrapper(item.foo, param1)
wrapped_function(param2)
def wrapper(func, param1):
# some database call or whatever
cache = {param1: 'param_value'}
def _wrapper(*args, **kwargs):
# access value to read
print(cache[param1])
return func(*args, **kwargs)
return _wrapper
bar = Bar()
bar.bar(1, 2)