-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy path2.4.py
More file actions
executable file
·62 lines (38 loc) · 1.27 KB
/
2.4.py
File metadata and controls
executable file
·62 lines (38 loc) · 1.27 KB
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
#!/usr/bin/env python2.4
import subprocess
import string
from passed import passed
# https://docs.python.org/3.10/whatsnew/2.4.html#pep-218-built-in-set-objects
assert 1 in set([1, 2])
a_str = set('ab')
assert 'b' in a_str
a_str.add('c')
assert 'c' in a_str
a_str.update('d')
assert 'd' in a_str
a_str.remove('a')
assert 'a' not in a_str
# https://docs.python.org/3.10/whatsnew/2.4.html#pep-289-generator-expressions
generator_expression = (c for c in 'ef' if c > 'e')
for c in generator_expression:
a_str.add(c)
assert 'e' not in a_str
assert 'f' in a_str
# https://docs.python.org/3.10/whatsnew/2.4.html#pep-292-simpler-string-substitutions
a_str = string.Template('var=$var')
assert a_str.substitute({'var': 1}) == 'var=1'
# https://docs.python.org/3.10/whatsnew/2.4.html#pep-318-decorators-for-functions-and-methods
def decoration(func):
def wrapper(arg):
return 'decorated' + func(arg)
wrapper.attr = 'decorated'
return wrapper
@decoration
def decorated(arg):
return arg
assert decorated.attr
assert decorated('1') == 'decorated1'
# https://docs.python.org/3.10/whatsnew/2.4.html#pep-322-reverse-iteration
assert list(reversed(xrange(1, 4))) == [3, 2, 1]
# https://docs.python.org/3.10/whatsnew/2.4.html#pep-324-new-subprocess-module
passed()