便利なjavascriptのオブジェクトの分割代入。
便利ですよねぇ
destructuring.js
const data = {
limit: 100,
offset: 50,
key1: 0,
key2: 'string',
}
const { limit, offset, ...other } = data
console.log(limit) // 100
console.log(offset) // 50
console.log(other) // { key1: 0, key2: 'string' }
Pythonの辞書でも同じようなことをしたい。
あまり綺麗ではないが、一応できた
destructuring.py
data = {
'limit': 100,
'offset': 50,
'key1': 0,
'key2': 'string',
}
limit, offset, other = (lambda limit, offset, **other: (limit, offset, other))(**data)
print(limit) # 100
print(offset) # 50
print(other) # {'key1': 0, 'key2': 'string'}
lambda
を使わないならまだ綺麗だが、汎用性に欠ける
destructuring_func.py
def destructuring(limit, offset, **other):
return limit, offset, other
data = {
'limit': 100,
'offset': 50,
'key1': 0,
'key2': 'string',
}
limit, offset, other = destructuring(**data)
print(limit) # 100
print(offset) # 50
print(other) # {'key1': 0, 'key2': 'sting'}
良い書き方はないものか