cython

Форк
0
/
classdecorators_T336.pyx 
46 строк · 845.0 Байт
1
# ticket: t336
2

3
__doc__ = u"""
4
>>> print('\\n'.join(calls))
5
Py-Honk PyTestClass
6
PyTestClass
7
Py-Hello PyTestClass
8
PyTestClass
9
Py-Done PyTestClass
10

11
>>> c = PyTestClass()
12
Ho, Ho, Ho!
13
"""
14

15
calls = []
16

17
class print_msg(object):
18
    def __init__(self, message):
19
        self.msg = message
20
    def __call__(self, c):
21
        calls.append( self.msg + c.__name__ )
22
        return c
23

24
def print_name(c):
25
    calls.append( c.__name__ )
26
    return c
27

28
@print_msg(u"Py-Done ")
29
@print_name
30
@print_msg(u"Py-Hello ")
31
@print_name
32
@print_msg(u"Py-Honk ")
33
class PyTestClass(object):
34
    def __init__(self):
35
        print u"Ho, Ho, Ho!"
36

37
# not currently working:
38
#
39
## @print_msg("Cy-Done ")
40
## @print_name
41
## @print_msg("Cy-Hello ")
42
## @print_name
43
## @print_msg("Cy-Honk ")
44
## cdef class CyTestClass(object):
45
##     def __init__(self):
46
##         print u"Ho, Ho, Ho!"
47

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.