foo는 = "foo는" 데프 바 (foo는) : foo는 = "바" 파이썬 함수 인수 범위 (사전 V 문자열.)
bar(foo)
print foo
# foo is still "foo"...
foo = {'foo':"foo"}
def bar(foo):
foo['foo'] = "bar"
bar(foo)
print foo['foo']
# foo['foo'] is now "bar"?
내가 실수했다 기능을 통해-작성이 내 사전을 통과 할 때 함수 매개 변수를 사용합니다. 내 매개 변수를 상수로 선언 할 수있는 명확한 방법이 있습니까? 아니면 함수 내에서 사전 복사본을 만들겠습니까?
감사합니다.
박람회. 이 키워드를 좀 더 멋지게 만들려면 const 키워드와 같은 것이 있어야합니다. 감사합니다. –
이것은 C++ 학습을 위해 뻔뻔한 플러그를 만들 수있는 지점입니다. 고급 언어에서 이런 종류의 오해 중 절반은 언어 작동 방식에 대한 이해가 부족하기 때문입니다. 약간의 C++를 배울 시간이 있다면, 파이썬에서 이러한 종류의 것들이 그들이 가장 빠르거나 가장 쉬운 구현이기 때문에 그들이하는 방식임을 알게 될 것입니다. 파이썬이 어떻게 작동 하는지를 이해하기 위해 C++을 알 필요는 없지만 더 쉽게 사용할 수 있습니다. –
@Shaun : 파이썬에서는 ('None','True','False','1','2' 등의 키워드 이름을 제외하고는) 아무 것도 실제로는 변하지 않습니다. 어쨌든'const' 키워드는 도움이되지 않을 것입니다 왜냐하면 두 번째'bar()'가'foo'라는 이름의 객체에 대한 연산을 수행하고 있기 때문에 이름이 무엇을 가리키는 지 바꾸지 않기 때문입니다. 'const'는 전자가 아니라 후자를 막습니다. Timothy는 C++ (또는 C)를 배우는 것이 아마도 이것을 명확하게하는 데 도움이 될 것이라는 점을 잘 알고 있습니다. –