2013-12-10 5 views
-4

В то время как я читаю некоторые питона код, я увидел следующее:Что такое отключенный декоратор в python?

@disabled 
class IterCases(BaseMatchCase): 

, которое трудно найти значение «Отключено» декоратора. Похоже, что «не» отключает сам класс, поскольку он активно используется во время выполнения.

+1

Ищите импорт вверху; это ** не ** стандартный декоратор библиотеки, а сторонняя библиотека. Другими словами, ** мы должны угадать ** и угадывать слепое. –

+0

Ищите функцию, называемую 'disabled', вероятно, из модуля, который вы импортировали. – cdarke

ответ

3

Я нашел exact source code, на котором вы, кажется, смотрите.

что декоратор определяется в oftest.testutils module как:

def disabled(cls): 
    """ 
    Testcase decorator that marks the test as being disabled. 
    These tests are not automatically added to the "standard" group or 
    their module's group. 
    """ 
    cls._disabled = True 
    return cls 

так все это делает установлен атрибут _disabled. Я нашел load_test_modules() function, который затем использует этот атрибут, чтобы пропустить любой класс, который имеет _disabled, установленный в True.

С первого взгляда декоратор, по-видимому, используется для любых базы классов; классы, используемые фактическими классами тестов.

+0

Это может быть глупый вопрос, но когда называется эта функция декоратора (отключена)? Когда я создаю экземпляр? – jaeyong

+0

Он применяется, когда выполняется определение класса; поэтому, когда модуль импортируется в этом случае. –