blob: ef90cfd070451b23e0e3e04371acfeefae369ade [file] [log] [blame]
Wenzel Jakob57082212015-09-04 23:42:12 +02001#!/usr/bin/env python
2from __future__ import print_function
Ben Pritchard1b522462016-03-10 16:31:38 -05003from functools import partial
Wenzel Jakob38bd7112015-07-05 20:05:44 +02004import sys
5sys.path.append('.')
6
7from example import Pet
8from example import Dog
Wenzel Jakob48548ea2016-01-17 22:36:44 +01009from example import Rabbit
Wenzel Jakob38bd7112015-07-05 20:05:44 +020010from example import dog_bark
11from example import pet_print
12
13polly = Pet('Polly', 'parrot')
14molly = Dog('Molly')
Wenzel Jakob48548ea2016-01-17 22:36:44 +010015roger = Rabbit('Rabbit')
16print(roger.name() + " is a " + roger.species())
17pet_print(roger)
Wenzel Jakob38bd7112015-07-05 20:05:44 +020018print(polly.name() + " is a " + polly.species())
19pet_print(polly)
20print(molly.name() + " is a " + molly.species())
21pet_print(molly)
22dog_bark(molly)
23try:
24 dog_bark(polly)
25except Exception as e:
26 print('The following error is expected: ' + str(e))
27
28from example import test_callback1
29from example import test_callback2
30from example import test_callback3
Wenzel Jakob281aa0e2015-07-30 15:29:00 +020031from example import test_callback4
Wenzel Jakob19208fe2015-10-13 17:37:25 +020032from example import test_cleanup
Wenzel Jakob38bd7112015-07-05 20:05:44 +020033
34def func1():
35 print('Callback function 1 called!')
36
Wenzel Jakob7b8e0322015-08-28 17:49:15 +020037def func2(a, b, c, d):
38 print('Callback function 2 called : ' + str(a) + ", " + str(b) + ", " + str(c) + ", "+ str(d))
Wenzel Jakoba2f6fde2015-10-01 16:46:03 +020039 return d
Wenzel Jakob38bd7112015-07-05 20:05:44 +020040
Ben Pritchard1b522462016-03-10 16:31:38 -050041def func3(a):
42 print('Callback function 3 called : ' + str(a))
43
Wenzel Jakob38bd7112015-07-05 20:05:44 +020044print(test_callback1(func1))
45print(test_callback2(func2))
Ben Pritchard1b522462016-03-10 16:31:38 -050046print(test_callback1(partial(func2, "Hello", "from", "partial", "object")))
47print(test_callback1(partial(func3, "Partial object with one argument")))
Wenzel Jakob38bd7112015-07-05 20:05:44 +020048
Wenzel Jakoba2f6fde2015-10-01 16:46:03 +020049test_callback3(lambda i: i + 1)
50f = test_callback4()
Wenzel Jakob281aa0e2015-07-30 15:29:00 +020051print("func(43) = %i" % f(43))
Wenzel Jakob19208fe2015-10-13 17:37:25 +020052
53test_cleanup()