Fun with python

Tags: python

Lambda functions, generators, dynamically created classes, decorators and more.

It's my first post so have mercy on the quality :)

Back

+ Code snippet

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.
a = [{'pk':1,'name':'one'}, {'pk':2,'name':'two'}, {'pk':3,'name':'three'}]

#def comp(x,y): return cmp(x['name'], y['name'])

print sorted(a, lambda x,y: cmp(x['name'], y['name']))

def get_names():
a = [{'pk':1,'name':'one'}, {'pk':2,'name':'two'}, {'pk':3,'name':'three'}]
for elem in a:
yield elem['name']

for name in get_names():
print name

class Test: pass

Test.a = 1
print Test.a

@staticmethod
def func():
return 'static'

Test.f = func
print Test.f()

t = Test()

t.b = 2
print t.a, t.b

def method(a):
return 'method' + str(a)

Test.m = method
print t.m()

print Test.m(t)

class Normal(object):
def start(self):
print 'start'

@staticmethod
def static():
return 'static'

@classmethod
def cstatic(cls):
return cls()

n = Normal()
print n.start()== Normal.start(n)

print Normal.static()
print Normal.cstatic()

def double(f):
def newf(*args, **kwargs):
result = f(*args, **kwargs)
return result * 2
return newf


@double
def func1():
return 10

@double
def func2():
return 'mom'

@double
def func3(x,y):
return x+y

print func1()
print func2()
print func3(1,2)


class Old: pass

o = Old()
print type(o)
print o.__class__

class New(object): pass
n = New()
print type(n) == n.__class__

class ODeriv(Old):
def __init__(self):
Old.__init__(self)


class NDeriv(New):
def __init__(self):
#New.__init__(self)
super(NDeriv, self).__init__()

on = ODeriv()
nd = NDeriv()

Comments

login to post
    Photo by
    Sorin Popa