LouiS0616さんの回答の通り、3.6以降で保持されるようになったはずです。
python
1import random
2
3with open('kwtest.py', 'w') as w:
4 print('def func(**kwargs): return kwargs', file=w)
5 for i in range(1000):
6 n = random.randint(2, 8)
7 k = random.sample('abcdefghijklmn', k=n)
8 v = random.sample(range(20), k=n)
9 print('assert [' + ','.join(f"'{a}'" for a in k) + '] == list(func('+ ','.join(f'{a}={b}' for a, b in zip(k,v)) + ').keys())', file=w)
みたいなコードを書いて
python
1def func(**kwargs): return kwargs
2assert ['a','j','g','k'] == list(func(a=19,j=14,g=6,k=1).keys())
3assert ['j','c','g'] == list(func(j=18,c=5,g=11).keys())
4assert ['f','m','g','n','j'] == list(func(f=3,m=9,g=19,n=16,j=8).keys())
5assert ['h','k','d','c'] == list(func(h=19,k=15,d=3,c=16).keys())
6assert ['i','c','f','g'] == list(func(i=8,c=1,f=17,g=14).keys())
7assert ['a','i','k','g','m','b','c'] == list(func(a=5,i=6,k=16,g=8,m=0,b=7,c=9).keys())
8assert ['a','e','f','l','d','b'] == list(func(a=16,e=8,f=6,l=11,d=19,b=10).keys())
9assert ['b','d','a','g','j'] == list(func(b=11,d=19,a=4,g=5,j=12).keys())
10assert ['j','e','m','i','b'] == list(func(j=1,e=0,m=10,i=2,b=7).keys())
11(略)
と生成してpython kwtest.py
を実行しましたが、AssertionErrorにならずに通っています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/18 13:00
2021/06/18 13:10
2021/06/18 13:13