Я просто запускаю следующий код и надеюсь получить font_size
вне команды with
но получаю эту ошибку:
def text_image(text_path, font_path = None):
with open(text_path, 'r+', encoding='utf-8') as text_file:
for num, data in enumerate(text_file, 1):
lookup4font_size = 'Font-size:'
if lookup4font_size in data:
font_size = next(text_file)
print(font_size)
и я получаю эту ошибку:
UnboundLocalError: local variable 'font_size' referenced before assignment
Кто-нибудь может помочь мне решить эту проблему. Большое спасибо.
Если ваш цикл не находит то, что он ищет, он заканчивается и пытается print(font_size)
. Но он устанавливает font_size
только в font_size
случае, если он находит то, что ищет (а затем return
s, поэтому print
никогда не достигается в тех случаях, когда font_size
существует). Удалить print
; это определенно никогда не будет возможно для этого, чтобы преуспеть.
font_size
, поэтому, когда он заканчивается, попытка использовать font_size
неудачей. Вы можете присвоить ему значение по умолчанию до начала цикла, поэтому, если цикл завершится неудачно, вы не попытаетесь прочитать неинициализированное значение или вы могли бы выяснить, почему в вашем файле данных нет строк, которые вы ожидаете увидеть , но фундаментальная проблема заключается в попытке чтения из переменной, которая никогда не была назначена во время этого вызова функции.
return font_size
? Это завершит функцию, иначеprint(font_size)
никогда не запустится. Либоprint(font_size)
на самом делеprint(text_image(args))
либоreturn font_size
должен быть удален.