2014-04-08 3 views
0

У меня есть необходимость проверки некоторых данных. Иногда данные повторяются в моей структуре данных, иногда это сингулярно. Когда он кратен, для этого установлен флаг. Для того, чтобы уменьшить код, я пытаюсь сделать следующее psuedocode:staticmethod, метод класса, вложенный метод

def validate(self): 
    if self.multiple 
     for chunk in self.data: #not real code here 
      validate_one_chunk(chunk) 
    else: 
     validate_one_chunk(self.data) 

Мой вопрос заключается в следующем: Validate является метод в классе. validate_one_chunk не читает и не модифицирует что-либо в классе. Если проверка не удалась, она вызывает исключение, иначе она ничего не делает, кроме проверки.

Если validate_one_chunk быть:

'регулярный' метод в классе

статический метод в классе

вложен внутри Validate?

ответ

2

'регулярный' метод в классе

Номер

статический метод в классе

Номер

вложенными внутри Validate

Возможно. Если нужны другие классы, тогда вместо этого сделайте это функцией уровня модуля.

+0

Если я делаю это вложенной функцией, то я не могу прямо проверить поведение вложенной функции, правильно? Тогда я должен просто проверить внешнюю функцию, чтобы все кодовые пути во внутренней функции выполнялись? – Mark

+0

Также, пожалуйста, объясните (1 или 2 строки), почему не первые два? – Mark

+0

Ваш вопрос уже охватывает это. Функция не имеет ничего общего с классом. –

Смежные вопросы