まず第一に、あなたが犯している間違いは変数名の違いです。最初に「辞書」を使用し、次に「辞書」を使用してそれらのいずれかを使用しました。
それとは別に、あなたが直面している問題は、クラス内の変数がグローバルではないことだと思います。問題を解決するには、以下のように変数をグローバルとして宣言する必要があります。
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 での lista の計算の両方を追加する必要があります。
方法 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)