class APIError(Exception):
pass
class InvalidToken(APIError):
pass
class APIWrapper:
def __init__(self, token=None):
self.token = token # публичное поле
def _acquire_new_token(self):
response = ask_actual_api_for_token() # пусть мы получаем словарь из JSON
if error := response.get('error', None):
raise APIError(error)
else:
self.token = response['token']
@requires_token
def do_stuff(self):
response = ask_actual_api_for_stuff(self.token, params='foobar')
if error := response.get('error', None):
if error == 'Invalid token':
raise InvalidToken()
else:
raise APIError(error)
# делаем что нужно с данными
do_stuff_with_response(response)
def hello(x):
print('hello,', x)
print('это выполнится в любом случае')
if __name__ == '__main__':
print('это выполнится, только если скрипт запущен непосредственно')
hello('world!')
else:
print('это выполнится, только если скрипт импортирован в другой')
Я вывожу в консоль данные и приходит это:
Если преобразовать число в строку, результат может иметь разное число знаков.