-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathex40.py
More file actions
39 lines (30 loc) · 978 Bytes
/
ex40.py
File metadata and controls
39 lines (30 loc) · 978 Bytes
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
#!/home/wizard/anaconda3/bin/python
from functools import wraps
def upperCase(func):
@wraps(func)
def wrapper(*args,**kwargs):
args = [ v.upper() for v in map(str,args)]
return func(*args,**kwargs)
return wrapper
def brackets(left='[',right=']'):
def decorator(func):
@wraps(func)
def wrapper(*args,**kwargs):
args = [f'{left}{v}{right}' for v in args]
return func(*args,**kwargs)
return wrapper
return decorator
@brackets('{','}')
@upperCase
def concat(*args,**kwargs):
'''Concatenate agrs with sep'''
sep = kwargs.get('sep',' ; ')
return sep.join(args)
if __name__ == '__main__':
countries = ['bg','us','de','uk','fr']
print(concat(*countries,sep=' | '))
print(concat('anna','maria','markus','john',sep=' $ '))
print(concat(11,22,33,44,55,sep=' - '))
print(f'{concat.__name__},{concat.__doc__}')
print = upperCase(print)
print('hello python')