Python Practice Creating and Using Functions in Python Practice Functions Use an External Function

sally chen
sally chen
895 Points

I keep getting a TypeError: 'str' object is not callable. How can I fix the code? Thanks.

using_a_function.py
"""
This is importing a function named `tweet` from a file
    that we unfortunately don't have access to change.

You use it like so:
>>> tweet("Hello this is my tweet")

If the function cannot connect to Twitter,
    the function will raise a `CommunicationError`
If the message is too long,
    the function will raise a `MessageTooLongError`
"""
from twitter import (
    tweet,
    MessageTooLongError,
    CommunicationError,
)


message = input("What would you like to tweet?  ")

try:
    tweet(message)
except CommunicationError:
    print("An error occurred attempting to connect to Twitter. Please try again!")
try: 
    message(42)
except MessageTooLongError as err:
    print("Oh no! Your message was too long (...)".format(err))

1 Answer

Steven Parker
Steven Parker
205,354 Points

Since "message" is created with an "input", it contains a string. Then "message(42)" is interpreted by the system as an attempt to call the string, which is not allowed.

But you don't need a second "try" at all, because one "try" can have multiple "except" statements follow it.

And one other thing: where the instructions have "..." they don't want actual dots, but they want you to insert the captured "except" message there.