import inspect
class Test:
def test(self, p, d={}):
d.update(p)
return d
print inspect.getargspec(getattr(Test, 'test'))[3]
print Test().test({'1':True})
print inspect.getargspec(getattr(Test, 'test'))[3]
나는 Test Test에 대한 argspec이 dict.update 때문에 변경되지 않기를 기대합니다. 왜?dict.update가 함수의 argspec에 영향을 줍니까?
'D = d 나 {}'는 누군가가 자신의 * dict 객체를 넘겨 주면 누군가가 당신이 변형시킨 것들을 가지고 * 누군가 자신의 * dict 객체 (또는 그것과 비슷한 종류의 다른 객체)를 넘겨 주면 이상하다. 즉 비어있는 경우 새로운 dict 객체를 대신 사용합니다. 이런 식으로 코드를 작성했다면'd가 None이면 : d = {}'를 사용하거나 아마 내가 시작하는 인수를 돌연변이시키지 않을 것입니다. –
여기에 요점이 있습니다.이를 수용 할 수있는 솔루션을 편집 중입니다. 어쨌든, 나는 또한 거기에서받은 논쟁을 돌연변이 시켜서는 안된다는 것에 동의한다. –