« Back to Index

[Python method signature syntax] Along with functools.partial interaction

View original Gist on GitHub

Tags: #tags: python, args, kwargs, partial

python-method-sig-with-partial.py

from functools import partial

def foo(bar, *args, beep=False, **kwargs):
    print(bar)
    print(args)
    print(beep)
    print(kwargs)

p = partial(foo, 'bar equals this')
p()
# bar equals this
# ()
# False
# {}

p = partial(foo, 'bar equals this', boop=123)
p()
# bar equals this
# ()
# False
# {'boop': 123}

p = partial(foo, 'bar equals this', 'some', 'stuff', boop=123)
p()
# bar equals this
# ('some', 'stuff')
# False
# {'boop': 123}

python-method-sig.py

def foo(bar, *args, beep=False, **kwargs):
    print(bar)
    print(args)
    print(beep)
    print(kwargs)
    
foo('b')
# b
# ()
# False
# {}

foo('b', 'c')
# b
# ('c',)
# False
# {}

foo('b', 'c', beep=True)
# b
# ('c',)
# True
# {}

foo('b', 'c', beep=True, boop=123)
# b
# ('c',)
# True
# {'boop': 123}