cython
1# mode: run
2# tag: cyfunction
3# cython: binding=True
4
5import cython6
7
8class PyClass(object):9a = 210
11
12class PyClass99(object):13a = 9914
15def pymethod(self, x, y=1, z=PyClass):16"""17>>> obj = PyClass99()
18>>> obj.pymethod(0)
19(0, 1, 2)
20"""
21return x, y, z.a22
23
24def func(x, y=1, z=PyClass):25"""26>>> func(0)
27(0, 1, 2)
28>>> func(0, 3)
29(0, 3, 2)
30>>> func(0, 3, PyClass)
31(0, 3, 2)
32>>> func(0, 3, 5)
33Traceback (most recent call last):
34AttributeError: 'int' object has no attribute 'a'
35"""
36return x, y, z.a37
38
39@cython.ccall40def pyfunc(x, y=1, z=PyClass):41"""42>>> pyfunc(0)
43(0, 1, 2)
44>>> pyfunc(0, 3)
45(0, 3, 2)
46>>> pyfunc(0, 3, PyClass)
47(0, 3, 2)
48>>> pyfunc(0, 3, 5)
49Traceback (most recent call last):
50AttributeError: 'int' object has no attribute 'a'
51"""
52return x, y, z.a53