Я хочу создать класс полезности, который содержит только статические методы, которые вызываются префиксом класса имени. Похоже, я делаю что-то не так:)
Вот мой небольшой класс:
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
Теперь мой "основной" метод:
from FileUtility import *
def main():
path = 'C:\config_file_list.txt'
dir = FileUtility.GetFilePath(path)
print dir
и я получил сообщение об ошибке: unbound method GetFilePath() must be called with FileUtility instance as first argument (got str instance instead)
.
A задайте здесь несколько вопросов:
- Что я делаю неправильно? Должен ли статический метод быть вызванным классом?
- Нужен ли мне класс утилиты, или есть ли другие способы достижения этого в Python?
- Если я попытаюсь изменить код в основном, я получаю:
TypeError: GetFilePath() takes exactly 1 argument (2 given)
Новый main
:
from FileUtility import *
def main():
objFile = FileUtility()
path = 'H:\config_file_list.txt'
dir = objFile.GetFilePath(path)
print dir