У меня есть модуль python, который я создал, который содержит регулярные функции, а также классы. По какой-то причине, когда я вызываю конструктор и передаю значение, он не обновляет переменную класса.Объявление классов внутри модуля python
Мой модуль называется VODControl (VODControl.py). Класс, который я объявил внутри модуля, называется DRMPath. Класс DRMPath имеет два экземпляра vairables: logfile и results. logfile - это строка, а результаты - словарь.
Мой конструктор выглядит следующим образом:
def __init__(self, file):
self.logilfe = file
self.results['GbE1'] = ""
self.results['GbE2'] = ""
self.results['NetCrypt'] = ""
self.results['QAM'] = ""
, когда я импортировать его из другого питона сценария я:
import VODControl
Вызов я использую следующее:
d = VODControl.DRMPath('/tmp/adk.log')
Однако, когда я печатаю значение переменной экземпляра журнала, оно не обновляется с тем, что я передал конструктору :
print d.logfile
После печати это еще пустая строка. Что дает?
Это опечатка 'logilfe'? – ChristopheD
Я бы рекомендовал переименовать параметр 'file' в' fname' или что-то еще, поскольку в настоящее время вы скрываете [встроенный тип файла] (http://docs.python.org/library/stdtypes.html#file-objects) – Glider
+1 для размещения * точного * кода, который включает опечатку logilfe. Слишком много плакатов вставляют фрагмент, который отражает то, что они * означают * для записи, но который опускает ключевую опечатку или другое boo-boo. – PaulMcG