Kw_assign Default Value
Default value can be assigned by adding default args to kw_assign() method.
In the following msg arg is assigned a default of Result:
from kwhelp import KwArg
def my_method(**kwargs) -> str:
kw = KwArg(**kwargs)
# assign args
kw.kw_assign(key='first', require=True, types=[int])
kw.kw_assign(key='second', require=True, types=[int])
kw.kw_assign(key='msg', types=[str], default='Result:')
kw.kw_assign(key='end', types=[str])
_result = kw.first + kw.second
if kw.is_attribute_exist('end'):
return_msg = f'{kw.msg} {_result}{kw.end}'
else:
return_msg = f'{kw.msg} {_result}'
return return_msg
Method result contains prefix of msg default value
>>> result = my_method(first=10, second=22, end="!")
>>> print(result)
Result: 32!
Method result contains Tally as msg default is now overridden by assiging value.
>>> result = my_method(first=10, second=22, end="!", msg="Tally")
>>> print(result)
Tally 32!
Method will raise an error as msg must be of type str as defined by types
>>> result = my_method(first=10, second=22, end="!", msg=-34)
TypeError: KwArg arg 'msg' is expected to be of '<class 'str'>' but got 'int'