Я читаю о декораторах и узнал совсем немного от Simeons blog У меня был успех до того, когда в функции не было аргументов: decorator (func). Я думаю, что моя проблема - декоратор (func (args)). Я думаю, что моя проблема func (args) выполняет и передает возвращаемое значение декоратору вместо самой функции. Как передать аргумент & в декораторе (пример B) и не использовать стиль украшения @decorator_name (пример A).Как передать функцию с аргументом в базовом декораторе с использованием Python?
Изменить: Я хотел бы пример B для получения того же результата, как, например, А.
user_input = input("Type what you want: ")
def camel_case(func):
def _decorator(arg):
s = ""
words = arg.split()
word_count = len(words)
for i in range(word_count):
if i >0:
s += words[i].title()
else:
s += words[i].lower()
return func(s)
return _decorator
Пример A: Это работает
@camel_case
def read(text):
print("\n" + text")
read(user_input)
Пример B: Это не работает
def read(text):
print("\n" + text")
camel_case(read(user_input))
Что вы пытаетесь достичь? –
Что вы должны сделать: 'camel_case (read) (user_input)' –
Только что отредактировал вопрос. Я хотел бы, чтобы оба примера B дали тот же результат, что и пример А. –