-1

指定したパス内のすべてのファイルとディレクトリを出力する小さなプログラムを作成しました。ソースコードは次のとおりです。

import os
import glob

class FolderStats:
    targetdir = ""

    def __init__(self, dirpath = None):
        targetdir = dirpath
        totalfiles = 0
        totalsubfolders = 0

    def FolderIterator(self):
        print self.targetdir
        listing = os.listdir(self.targetdir)
        for infile in listing:
            print "current file is: %s" % (infile)

if __name__ == '__main__':
    Obj = FolderStats(raw_input('Enter your path: '))
    Obj.FolderIterator()

上記のコードは実行されていません。メソッドでエラーが発生しますFolderIterator:printコマンドを実行しても、何も出力されません。<targetdir>私が提供したパスはもう含まれていません。なんでそうなの?

4

1 に答える 1

0

あなたの代わりに__init__使用する必要がありますself.targetdirtargetdir

>>> class Test:
    var = 1
    def __init__(self):
        var = 2         
        print self.var  # Object variable
        print var       # Local variable
    def func(self):
        print self.var
        print var       # this will fail, because there's no local var in this scope


>>> a = Test()
1
2
>>> a.func()
1

Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    a.func()
  File "<pyshell#10>", line 9, in func
    print var
NameError: global name 'var' is not defined
于 2013-02-08T05:53:05.197 に答える