2015-10-15 3 views
0

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

def not(*args): 
    ...... 

Это вызывает ошибку «недопустимый синтаксис». Есть ли способ переопределить специальное ключевое слово и использовать его как имя функции в классическом методе? Я могу сделать это с помощью @task alias, но все мои другие функции следуют классическому методу. http://docs.fabfile.org/en/1.10/usage/tasks.html#task-decorator

ответ

0

Это выглядит хорошо для меня:

fabfile.py

from fabric.api import task 

@task(alias='not') 
def _not(): 
    print 'not called' 

@task(alias='in') 
def _in(): 
    print 'in called' 

@task(alias='while') 
def _while(): 
    print 'while called' 

старый стиль:

from fabric import state 

def _not(): 
    print 'not called' 

def _in(): 
    print 'in called' 

def _while(): 
    print 'while called' 

state.commands['not'] = _not 
state.commands['in'] = _in 
state.commands['while'] = _while 

и запустить его.

$ fab not while in 
not called 
while called 
in called 

Done. 

Также. В следующий раз добавьте python в теги, это было почти невозможно, чтобы получить «найденный» - ха-ха.

+0

Добавлен тег python. Я вижу, что могу сделать эту работу с декоратором @task, но мне нужно было использовать классический метод. – user5095359

+0

Какова версия python и fabric, которую вы используете? –

+0

python- 2.7.6, fabric- 1.10.2 – user5095359

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

  • Нет связанных вопросов^_^