Прежде всего, ошибка, которую вы делаете, - это различие в имени переменной, сначала вы использовали «dictionar», а затем использовали «dicionar», используя любой из них.
Кроме того, я думаю, этот вопрос вы столкнулись в том, что переменные внутри класса не являются глобальными, чтобы решить этот вопрос, что вы можете сделать, это объявить переменные как глобальные, как показано ниже:
import os
class sortare:
global dictionar, lista
dictionar = raw_input("Scrie calea catre director: ")
lista = os.listdir(dictionar)
def __init__(self):
lista = os.listdir(dictionar)
for item in lista:
print item
print len(item)
Но это неправильный способ написания кода, вы должны либо запросить входной аргумент снаружи, а затем передать только «lista» в качестве аргументов функции, или вы можете добавить как запрашивающий ввод, так и вычисление списка в init.
Метод 1:
import os
class sortare:
def __init__(self, lista):
for item in lista:
print item
print len(item)
dictionar = raw_input("Scrie calea catre director: ")
lista = os.listdir(dictionar)
sortare(lista)
Метод 2:
import os
class sortare:
def __init__(self):
dictionar = raw_input("Scrie calea catre director: ")
lista = os.listdir(dictionar)
for item in lista:
print item
print len(item)
sortare(lista)
Трудно сказать, не видя весь ваш код, но, как правило, вы должны поместить _все_ код инициализации класса внутри '__init__ 'метод. Строки 'dictionar =' и 'lista =' могут быть не в том месте. – Kevin
Я пытаюсь использовать метод diferit, но я не знаю верный метод класса (работающий учиться), i tri в этом режиме: http://pastebin.com/hku285qV –
Обычно вы не должны возвращать значение внутри 'for 'loop, так как это приводит к немедленному завершению цикла. И в любом случае вам не разрешается вообще ничего возвращать из метода '__init__'. Почему бы не попробовать использовать регулярную функцию вместо класса? – Kevin