Чтение в файлах как объекты вместо переменных в python - PullRequest
0 голосов
/ 26 апреля 2019

После недавнего запуска роли, которая по существу включает профессиональную разработку программного обеспечения на python, я заметил в коде, что я работаю с тем, что люди склонны читать в файлах как объекты, а не переменные, и я не могу понять, почему.

Например, я работаю с ограниченным количеством растровых файлов. В частях кода, которые имеют дело с этими растровыми файлами, может быть класс, явно определенный для чтения в растрах. Класс принимает местоположение файла, как при вводе, и затем использует пакет Python rasterio, чтобы открывать, читать и получать доступ к другим характеристикам файла, но затем сохраняет их как атрибуты. Для дальнейшего примера у нас может быть что-то вроде следующего:

class test(object):
    def __init__(self, fileLocation):
        self.fileRead = open(fileLocation)
        self.fileSplit = self.fileRead.split()

Моим инстинктом было бы просто прочитать файл как переменную и получить доступ к его свойствам, когда они мне понадобились, чтобы избежать лишних усилий.

Я знаю, что идея классов состоит в том, чтобы обеспечить упорядоченную обработку данных при работе с количествами данных аналогичного типа (т. Е. Информацией об учениках для учеников в школе), но этот класс может инициировать один экземпляр при каждом запуске родительской программы. , Так что для меня кажется немного излишним пытаться создать класс для хранения информации, полученной через rasterio, когда, вероятно, будет гораздо чище просто получить доступ к данным файла, как вы хотите через явный звонки с rasterio.

Теперь, этот вид структурирования кода, кажется, довольно распространен, и я просто не могу понять, почему это было бы хорошим способом делать вещи. Поэтому мне было интересно, есть ли какая-то скрытая выгода, которую я упускаю, которую кто-то может мне объяснить? Или же не обращать на это внимания и продолжать в изложенном порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...