Когда вы думаете о том, чтобы объекты, помните:
Классы имеют атрибуты - вещи, которые описывают разные экземпляры класса по-разному.
Классы имеют методы - вещи, которые делают объекты (часто с использованием их атрибута utes)
Объекты и классы замечательные, но в первую очередь следует иметь в виду, что они не всегда необходимы или даже желательны.
Тем не менее, в ответ на ваш первый вопрос это не кажется особенно хорошим кандидатом для класса. Единственное, что отличается между различными файлами CVS, которые вы пишете, - это данные и файл, в который вы пишете, и единственное, что вы делаете с ними (т. Е. Единственный метод, который у вас есть) - это функция, которую вы уже написали) ,
Несмотря на то, что первый ответ отрицательный, все же поучительно видеть, как построен класс.
class CSVWriter:
# this function is called when you create an instance of the class
# it sets up the initial attributes of the instance
def __init__(self, dictList, outFile):
self.dictList = dictList
self.outFile = outFile
def writeCSV(self):
# basically exactly what you have above, except you can use the instance's
# own variables (ie, self.dictList and self.outFile) instead of the local
# variables
Для окончательного вопроса - первый шаг к использованию экземпляра класса (отдельный объект, если вы будете), чтобы создать этот экземпляр:
myCSV = CSVWriter(dictList, outFile)
При создании объекта, init вызывается с аргументами, которые вы ему дали, что позволяет вашему объекту иметь свои собственные данные. Теперь вы можете получить доступ к любым из атрибутов или методов, которые имеет ваш объект myCSV, с параметром '.' Оператор:
myCSV.writeCSV()
print "Wrote a file to", myCSV.outFile
Один из способов думать об объектах в сравнении функций является то, что объекты, как правило, существительные (например, я создал CSVWriter), в то время как функции глаголов (например, вы написали функцию, которая записывает CSV файлов). Если вы просто делаете что-то снова и снова, без повторного использования каких-либо одних и тех же данных, сама по себе функция прекрасна. Но, если у вас много связанных данных, и часть его изменяется в ходе действия, классы могут быть хорошей идеей.
Я не уверен, что это будет отличный кандидат для класса, но это может зависеть от того, как вы его используете. Классы используются, когда вы хотите создать новый тип данных. Каков тип данных в этом примере? –
интересно, три ответа выбрали имя CSVWriter, но тогда может быть какое-то другое имя? –