0

Python で静的関数を使用しているときに問題が発生しました。私は静的関数を持つクラスを持っています

class CFileSystemOperations(object):
    ....
    ....
    def getRepositoryDirectory():
        ......
        return sRepositoryDirectory            
    getRepositoryDirectory = staticmethod(getRepositoryDirectory)

次に、静的クラスを呼び出す関数を持つ別のクラスがあり、2つのソリューションを試します

class CMusicOrganizerView(object):
    ....
    def __init__(self):
        ....
        #first solution
        sGuessedRepositoryTextfield = CFileSystemOperations().getRepositoryDirectory()
        #second solution
        sGuessedRepositoryTextfield = CFileSystemOperations.getRepositoryDirectory()

ここにエラーがあります:

sGuessedRepositoryTextfield = CFileSystemOperations().getRepositoryDirectory() TypeError: 'module' オブジェクトは呼び出せません

sGuessedRepositoryTextfield = CFileSystemOperations.getRepositoryDirectory() AttributeError: 'module' オブジェクトに属性 'getRepositoryDirectory' がありません エラー: モジュール: musicOrganizer をインポートできませんでした (ファイル: /..../musicOrganizer.py)。

何か案は?前もって感謝します

4

1 に答える 1

0

モジュールとそれに含まれるクラスを混同しました。使用する

CFileSystemOperations.CFileSystemOperations().getRepositoryDirectory()

(そして、モジュールにより良い名前を付けます。Java のように、含まれているクラス名と一致する必要はありません)

于 2013-01-06T14:55:17.757 に答える