2016-04-21 16:51:36 +01:00
|
|
|
# test passing a string object as the key for a keyword argument
|
|
|
|
|
2018-02-14 05:46:44 +00:00
|
|
|
try:
|
|
|
|
exec
|
|
|
|
except NameError:
|
|
|
|
print("SKIP")
|
|
|
|
raise SystemExit
|
|
|
|
|
2016-04-21 16:51:36 +01:00
|
|
|
# they key in this dict is a string object and is not interned
|
|
|
|
args = {'thisisaverylongargumentname': 123}
|
|
|
|
|
|
|
|
# when this string is executed it will intern the keyword argument
|
|
|
|
exec("def foo(*,thisisaverylongargumentname=1):\n print(thisisaverylongargumentname)")
|
|
|
|
|
|
|
|
# test default arg
|
|
|
|
foo()
|
|
|
|
|
|
|
|
# the string from the dict should match the interned keyword argument
|
|
|
|
foo(**args)
|