class Quad:
def __init__(self, *vals):
self.x = [vals[0], vals[1]]
self.y = [vals[2], vals[3]]
def matrix():
return [self.x, self.y]
class Rect(Quad):
def __init__(self, width, height):
self.x = [0, width]
self.y = [0, height]
def area():
return (self.x[1] - self.x[0]) * (self.y[1] - self.y[0])
class Quad:
def __init__(self, *vals):
self.x = [vals[0], vals[1]]
self.y = [vals[2], vals[3]]
@property
def matrix(self):
return [self.x, self.y]
class Rect(Quad):
def __init__(self, width, height):
self.x = [0, width]
self.y = [0, height]
# meta decorations
@property
def area(self):
return (self.x[1] - self.x[0]) * (self.y[1] - self.y[0])
# Meta addition
def width(self):
return self.x[1] - self.x[0]
Rect.width = width
from functools import wraps
def confuse(fn):
@wraps(fn)
def wrapped(*args, **kwargs):
return " O.o " + fn(*args, **kwargs)
return wrapped
def smile(fn):
@wraps(fn)
def wrapped(*args, **kwargs):
return " ^.^ " + fn(*args, **kwargs)
return wrapped
@confuse
@smile
def hello():
return "hello world"
@smile
@confuse
def log(s):
return s
# factorial
import functools as ft
n = get_n()
ft.reduce(lambda x, y: x * y, range(1, n))
twitter/github $> @swarnimarun
reddit/telegram $> minraws