Statische Methoden der Python-Klasse
Ich möchte eine Art Utility-Klasse erstellen, die nur statische Methoden enthält, die über das Namensklassenpräfix aufgerufen werden können. Sieht so aus, als ob ich etwas falsch mache :)
Hier ist meine kleine Klasse:
class FileUtility():
@staticmethod
def GetFileSize(self, fullName):
fileSize = os.path.getsize(fullName)
return fileSize
@staticmethod
def GetFilePath(self, fullName):
filePath = os.path.abspath(fullName)
return filePath
Nun meine "Haupt" -Methode:
from FileUtility import *
def main():
path = 'C:\config_file_list.txt'
dir = FileUtility.GetFilePath(path)
print dir
und ich habe einen Fehler bekommen:unbound method GetFilePath() must be called with FileUtility instance as first argument (got str instance instead)
.
Ich habe hier ein paar Fragen:
Was mache ich falsch? Sollte die statische Methode nicht über den Klassennamen aufrufbar sein?Benötige ich wirklich eine Utility-Klasse oder gibt es andere Möglichkeiten, um dasselbe in Python zu erreichen?Wenn ich versuche, den Code in main zu ändern, erhalte ich:TypeError: GetFilePath() takes exactly 1 argument (2 given)
Das neuemain
:
from FileUtility import *
def main():
objFile = FileUtility()
path = 'H:\config_file_list.txt'
dir = objFile.GetFilePath(path)
print dir