Уведомления

Группа в Telegram: @pythonsu

#1 Май 31, 2020 18:18:12

cherwonets
Зарегистрирован: 2020-05-31
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Как деактивировать функцию?

Python 3.7
Т.е. сделать так, чтобы функция перестала выполнять свою задачу.

Офлайн

#2 Май 31, 2020 18:36:29

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как деактивировать функцию?

cherwonets что значит “деактивировать” или “чтобы функция перестала выполнять свою задачу”?
а какую задачу она должна выполнять?
поскольку в пайтоне практически все является обьектом то функцию можно просто удалить:

def test():
print('blah_blah_blah')
test()
del test
test()

>>>
blah_blah_blah
Traceback (most recent call last):
File "<модуль1>", line 6, in <module>
NameError: name 'test' is not defined
>>>
или замменить ее на другую функцию
 def test():
    print('blah_blah_blah')
def other_func():
    print('ooops...')
test()
test = other_func
test()
>>> 
blah_blah_blah
ooops...
>>>



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Май 31, 2020 20:24:37

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как деактивировать функцию?

   
class disable(object):
    def __init__(self, func):
        self.func = func
        self.active = True
    def __call__(self, *args, **kwargs):
        if self.active:
            return self.func( *args, **kwargs)
@disable
def foo():
    print 'i am working'
foo()
foo()
foo.active = False
foo()
foo()
foo.active = True
foo()
foo()



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version