blob: b01a8a4edf610531ec9e018bb898f870ff2ad3b8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
# Some comments first
# More comments
'A module docstring'
doctest = u"""# Python 3 gets all of these right ...
>>> __doc__
'A module docstring'
>>> f.__doc__
'\\n This is a function docstring.\\n '
>>> C.__doc__
'\\n This is a class docstring.\\n '
>>> CS.__doc__
'\\n This is a subclass docstring.\\n '
>>> print(CSS.__doc__)
None
>>> T.__doc__
'\\n This is an extension type docstring.\\n '
>>> TS.__doc__
'\\n This is an extension subtype docstring.\\n '
>>> TSS.__doc__
Compare with standard Python:
>>> def Pyf():
... '''
... This is a function docstring.
... '''
>>> Pyf.__doc__
'\\n This is a function docstring.\\n '
>>> class PyC:
... '''
... This is a class docstring.
... '''
>>> class PyCS(C):
... '''
... This is a subclass docstring.
... '''
>>> class PyCSS(CS):
... pass
>>> PyC.__doc__
'\\n This is a class docstring.\\n '
>>> PyCS.__doc__
'\\n This is a subclass docstring.\\n '
>>> PyCSS.__doc__
"""
__test__ = {"test_docstrings" : doctest}
def f():
"""
This is a function docstring.
"""
class C:
"""
This is a class docstring.
"""
class CS(C):
"""
This is a subclass docstring.
"""
class CSS(CS):
pass
cdef class T:
"""
This is an extension type docstring.
"""
cdef class TS(T):
"""
This is an extension subtype docstring.
"""
cdef class TSS(TS):
pass
def n():
"This is not a docstring".lower()
class PyN(object):
u"This is not a docstring".lower()
cdef class CN(object):
b"This is not a docstring".lower()
def test_non_docstrings():
"""
>>> n.__doc__
>>> PyN.__doc__
>>> CN.__doc__
"""
|