다음 예제를 이해하지 못하지만 이러한 기능이 있다고 가정 해 보겠습니다.
# python likes
def save(filename, data, **kwargs):
fo = openX(filename, "w", **kwargs) # <- #1
fo.write(data)
fo.close()
# python doesnt like
def save2(filename, data, **kwargs):
fo = openX(filename, "w", kwargs) # <- #2
fo.write(data)
fo.close()
def openX(filename, mode, **kwargs):
#doing something fancy and returning a file object
# 1이 올바른 솔루션이고 # 2가 왜 잘못된 솔루션입니까? **kwargs
기본적으로 dict이므로 openX에 인수를 전달하려면 올바른 방법이 없으면 **
dict을 제공 하지 않을 것이라고 생각합니다 . 그러나 파이썬은 분명히 두 번째 것을 좋아하지 않으며 2 개의 인수 대신 3을주었습니다. 그렇다면 이것의 이유는 무엇입니까?
**args
코드에서 왜 그것을 호출하는지 궁금 합니다. 사람들이 그것을 혼동하기 때문에 이것은 아마도 최악의 이름 일 것입니다*args