Это и императивное, и декларативное.
find ./some_dir | grep -e '*.txt' | grep -v 'dont_keep.txt'
вот пример json, который является как императивным, так и декларативным:
bullets = {"include": ['hello'], "exclude": ['*.txt', '*.jpeg']}
weapon = filter(bullets)
walkers = os.walk('.')
[weapon(zombie) for zombie in walkers]
вот пример, который является и тем и другим, и намного сложнее, чем нужно:
from functools import wraps
def zombie_killer(f):
@wraps(f)
def moral_code(**kwargs):
w = kwargs.get('weapon', '')
f = kwargs.get('friendlies', '')
z = kwargs.get('zombies', '')
def maps(walkers):
for (hilltop, houses, zombies) in walkers:
for creature in zombies:
if creature in f:
yield f
elif creature in zombie:
yield
return maps
return moral_code
@zombie_killer
def kill_directive(*args, **kwargs):
''' magic goes here '''
print(args, kwargs)
watch = kill_directive(weapon=bullets,
friendlies=['rick', 'morty'],
zombies=['*.txt', '*.pid'])
list(watch(walkers))
Очень хороший пример этого можно увидеть здесь:
person
jmunsch
schedule
07.06.2017