[Python] 파이썬에서 "global"문을 사용합니까?


Answers

필자는 Python을 전문적으로 사용한 3 년 이상, Python 애호가로서의 5 년 동안의 프로덕션 코드에서이 문장을 적법하게 사용하지 못했습니다. 변경해야하는 모든 상태는 클래스에 있거나 "전역"상태가있는 경우 글로벌 캐시와 같은 일부 공유 구조에 있습니다.

Question

파이썬 글로벌 서술문 ( "파이썬 범위" )에 대한 질문을 읽었을 때 파이썬 초보자 였을 때 (나는 글로벌 하게 많이 사용함) 어떻게 요즘 몇 년 후에이 문장을 얼마나 자주 사용했는지 기억하고있었습니다. 그것을 전혀 사용하지 마십시오. 나는 심지어 그것을 "비 - 파이썬 성"이라고 생각한다.

이 문장을 파이썬에서 사용합니까? 시간이 지남에 따라 귀하의 사용이 변경 되었습니까?




명령 줄 스크립트와 'optparse'를 사용하여 전역 옵션에 사용합니다.

내 main ()은 인수를 구문 분석하고 스크립트의 작업을 수행하는 모든 함수에 전달하지만 제공된 옵션을 전역 'opts'사전에 씁니다.

쉘 스크립트 옵션은 종종 '잎'동작을 조정하며, 모든 인수 목록을 통해 'opts'사전을 스레드하는 것은 불편하고 불필요합니다.




나는 일회성 작업을 자동화하기 위해 빠르고 일회용 스크립트에이 스크립트를 사용했다. 그보다 더 큰 것, 또는 재사용해야하는 것, 그리고 나는 더 우아한 방법을 찾을 것입니다.




드물게. 나는 그것을 전혀 사용하지 않았다.




내가 그것을 피할 수 있다면, 안돼. 그리고 내 지식으로는 항상 그것을 피할 수있는 방법이 있습니다. 하지만 전적으로 쓸모가 없다는 것은 아닙니다.




제 생각에는 파이썬 코드에서 전역 변수를 사용할 필요가 있다고 느끼면 바로 잠시 멈추고 코드 리팩토링 작업을하는 것이 좋습니다.
global 에 코드를 삽입하고 리팩토링 프로세스를 지연하면 데드 라인이 가까워지면 유망한 것처럼 들릴지 모르겠지만, 필자는 코드로 작업을 중단 한 것처럼 꼭 돌아가고 싶지 않으면 다시 돌아 가지 않을 것입니다. 어떤 이상한 이유, 디버깅이 필요하다. global 변수 중 일부를 만났을 뿐이다.

그래서, 솔직히 말해서, 허용 되더라도, 나는 그것을 사용하는 것을 피할 수있는만큼 많이 할 것입니다. 코드가 단순한 클래스를 의미한다고해도 말입니다.