Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Challenge: Text Cache | Closure
Mastering Python: Closures and Decorators

book
Challenge: Text Cache

Tarefa

Swipe to start coding

Implement the string_cache() function that returns the inner() function that takes the string value and adds it to the enclosed text.

  1. Create the text variable with the value "" (empty string) in the string_cache() function.
  2. The inner() function should take the string argument with the default value "".
  3. Make the text non-local variable changeable inside the inner() function.
  4. If the string argument is not an empty string, add this string to the text non-local variable. After the first string addition, the addition should be with space.
  5. The inner() function should return the text enclosed variable.
  6. The string_cache() should return the inner() function without calling.
  7. Call the string_cache() function and assign the result to the text_cache variable.

Solução

def string_cache():
text = ""
def inner(string=""):
nonlocal text
if string != "" and isinstance(string, str):
if text != "":
text += " " + string
else:
text += string
return text
return inner


text_cache = string_cache()

print(text_cache())
print(text_cache("It's"))
print(text_cache("a"))
print(text_cache("text"))
print(text_cache("cache."))
print(text_cache())

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 4
def string_cache():
___ = ___
def inner(___=___):
___ text
if string != "" and isinstance(string, str):
if text != "":
text += " " + ___
else:
___ += string
return ___
return ___


text_cache = ___()

print(text_cache())
print(text_cache("It's"))
print(text_cache("a"))
print(text_cache("text"))
print(text_cache("cache."))
print(text_cache())

Pergunte à IA

expand
ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

some-alt