def varfunc(*args):
print(f"type={type(args)}, len={len(args)}")
print(args)
varfunc()
varfunc(1,2,3)
varfunc("h", "e", "l", "l", "o")
def varfunc2(a,b,c, *args):
print(a,b,c)
print(f"type={type(args)}, len={len(args)}")
print(args)
varfunc2()
varfunc2(1,2,3)
varfunc2(1,2,3, 4, 5, 6)
varfunc(end="\n")
print(1,2,3, sep =" @ ", end=" !!! \n")
def myprint(*args, sep=' ', end='\n'):
print(*args, sep=sep, end=end)
myprint("hello", "world", "nice", "to", "meet", "you")
print('hello')
myprint(blah="blah")
myprint(just_invented_this="blah")
dict(a=1, b=2, blah=10, testthis=100)
def mydict(**kwargs):
print(f"type={type(kwargs)}, len={len(kwargs)}")
print(kwargs)
#return kwargs
return dict(**kwargs)
mydict(a=1, b=2, blah=10, testthis=100)
mydict(
param1 = "I",
p2 = "can",
p3 = "send",
p4 = "anything",
whynot = "!"
)
x = mydict(
param1 = "I",
p2 = "can",
p3 = "send",
p4 = "anything",
whynot = "!"
)
print(x)
def full_variadic(*args, **kwargs):
print(args)
print(kwargs)
full_variadic(1,2,3, name='avi', lname="blah")
def make_wrapper(func):
def the_wrapper(*args, **kwargs):
print("I'm wrapping the func", func.__name__)
print(args)
print(kwargs)
x = func(*args, **kwargs)
print("returning", x)
return x
return the_wrapper
myprint = make_wrapper(print)
myprint(1,2,3, end=" @@@\n")
import math
mysin = make_wrapper(math.sin)
mysin(0)