def args_test(name, *contents, point=None, **attrs):
return '<args_test> -> ({}) ({}) ({}) ({})'.format(name, contents, point, attrs)
from inspect import signature
sg = signature(args_test)
print(sg)
# (name, *contents, point=None, **attrs)
print(sg.parameters)
# OrderedDict([('name', <Parameter "name">), ('contents', <Parameter "*contents">), ('point', <Parameter "point=None">), ('attrs', <Parameter "**attrs">)])
partial ์ฌ์ฉ๋ฒ : ์ธ์ ๊ณ ์ -> ์ฃผ๋ก ํน์ ์ธ์ ๊ณ ์ ํ ์ฝ๋ฐฑ ํจ์์ ์ฌ์ฉ
ํ๋ ์ด์์ ์ธ์๊ฐ ์ด๋ฏธ ํ ๋น๋(์ฑ์์ง) ํจ์์ ์ ๋ฒ์ ๋ฐํ
ํจ์์ ์ ๊ฐ์ฒด ํ์ ์ ์ด์ ํจ์์ ์์ฒด๋ฅผ ๊ธฐ์ ํ๊ณ ์๋ค.
from operator import mul
from functools import partial
print(mul(5,100))
# 500
five = partial(mul,5)
print(five(1000))
# 5000
six = partial(five,6)
print(six())
# 30
print([five(i) for i in range(1,11)]) # [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
print(list(map(five, range(1,11)))) # [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
์ ๋ฆฌ: partialํจ์๋ ์ธ์๋ฅผ ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค. ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ๋ ์ ์ฉํ ๊ฒ ๊ฐ๋ค.