cython
1GLB0 = (1, 2)
2def f0(arg=GLB0):
3"""
4>>> f0()
5(1, 2)
6"""
7return arg
8def g0(arg=(1, 2)):
9"""
10>>> g0()
11(1, 2)
12"""
13return arg
14
15
16GLB1 = [1, 2]
17def f1(arg=GLB1):
18"""
19>>> f1()
20[1, 2]
21"""
22return arg
23def g1(arg=[1, 2]):
24"""
25>>> g1()
26[1, 2]
27"""
28return arg
29
30
31cdef GLB2 = {1: 2}
32def f2(arg=GLB2):
33"""
34>>> f2()
35{1: 2}
36"""
37return arg
38def g2(arg={1: 2}):
39"""
40>>> g2()
41{1: 2}
42"""
43return arg
44
45
46class Foo(object):
47pass
48cdef GLB3 = Foo()
49def f3(arg=GLB3):
50"""
51>>> f3() #doctest: +ELLIPSIS
52<argdefault.Foo object at ...>
53"""
54return arg
55def g3(arg=Foo()):
56"""
57>>> g3() #doctest: +ELLIPSIS
58<argdefault.Foo object at ...>
59"""
60return arg
61
62
63cdef class Bar:
64pass
65cdef Bar GLB4 = Bar()
66def f4(arg=GLB4):
67"""
68>>> f4() #doctest: +ELLIPSIS
69<argdefault.Bar object at ...>
70"""
71return arg
72def g4(arg=Bar()):
73"""
74>>> g4() #doctest: +ELLIPSIS
75<argdefault.Bar object at ...>
76"""
77return arg
78
79
80cdef class Bla:
81pass
82cdef Bla GLB5 = Bla()
83def f5(Bla arg=GLB5):
84"""
85>>> f5() #doctest: +ELLIPSIS
86<argdefault.Bla object at ...>
87"""
88return arg
89def g5(Bla arg=Bla()):
90"""
91>>> g5() #doctest: +ELLIPSIS
92<argdefault.Bla object at ...>
93"""
94return arg
95
96
97cdef int GLB6 = 7
98def f6(int arg=GLB6):
99"""
100>>> f6()
1017
102"""
103return arg
104def g6(int arg=7):
105"""
106>>> g6()
1077
108"""
109return arg
110