Не работает код в python срочно помогите - Общение Python мододелов

Вопрос Не работает код в python срочно помогите

Регистрация
28 Июн 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
def main():

from time import sleep,perf_counter

from keyboard import is_pressed,send,write

from random import choice

slp,getTime,isp,snd,wrt,chc = sleep,perf_counter,is_pressed,send,write,choice

logpath = "C:/Users/USER/AppData/Roaming/.minecraft/logs/latest.log"

with open(logpath,"r") as file:

backloglength = len(file.readlines())

def getLastMessages():

global backloglength

with open(logpath,"r") as file:

temp = file.readlines()

out = [temp for i in range(backloglength,len(temp))]

backloglength = len(temp)

return out

while True:

start = getTime()+3

print(getLastMessages())

while getTime() < start: pass

main() пишет ошибку

out = [temp for i in range(backloglength,len(temp))]

^^^^^^^^^^^^^

NameError: name &#39;backloglength&#39; is not defined

откуда эта ошибка? переменная backloglength существует
 
Регистрация
2 Ноя 2013
Сообщения
93
Репутация
-3
Спасибо
0
Монет
0
она существует в другой функции и даже не глобально
 
Регистрация
26 Окт 2013
Сообщения
94
Репутация
-5
Спасибо
0
Монет
0
Ошибка возникает из-за того, что переменная backloglength объявляется внутри функции main(), но используется в функции getLastMessages(), которая является вложенной функцией. Поэтому она не видна внутри функции getLastMessages().
 
Регистрация
30 Ноя 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
Избегайте использования глобальных переменных, вместо этого лучше передайте это значение как параметр к функции, которую вы вызываете.
 
Сверху Снизу