2010-04-08 4 views
1

파이썬에서는 인수, 지역 변수 및 전역 변수를 구별 할 수있는 방법이 없습니다. 이렇게하는 쉬운 방법이이 Pythonian 방법이 있나요 _ 파이썬에서 인수, 지역 변수 및 전역 변수 코딩 규칙

 
_Gvariable = 10 
def hello(x_, y_): 
    z = x_ + y_ 

  • 인수와 함께 종료 일부 등

    • 글로벌 변수는 _로 시작하는 코딩 규칙과 자본 문자가있을 수 있습니다 가다? 파이썬으로 차별화 할 수있는 잘 정립 된 코딩 표준이 있습니까?

      === ADDED ===은

      난 그냥 인수 및 지역 변수 구별 할. 인수는 외부에서 주어지며, 읽는 것으로 간주되지 않는 의미에서 ROM과 비슷합니다. C++은 인수가 변경되지 않도록하기 위해 const 키워드를 제공하지만 파이썬에 대해서는 제공하지 않습니다. 파이썬에서이 기능을 모방하는 방법 중 하나가 될 수 있다고 생각했습니다.

  • +6

    읽기 PEP 8 : http://www.python.org/dev/peps/pep-0008/ –

    +1

    왜 이렇게하고 싶으십니까? 일반적으로 이름이 어디에서 왔는지는 분명합니다. 코드를 읽지 않고 알아내는 것만으로도 충분히 쉽습니다 (미친 짓을하지 않는 한). –

    +1

    함수가 const처럼 인자를 변경하는 것을 막으려면 인자로 넘겨주는 객체에'copy' 모듈을 사용하여 실제 객체 대신 복사본을 전달할 수 있습니다. 그것이 혼란 스러울 수도 있습니다. 아마 당신이 원하는 것을 정확하게하는 코드를 작성하고 그것을 확인하기위한 unittest를 작성하는 것이 가장 좋습니다. –

    답변

    2

    저는 모든 파이썬 프로그래밍을 PEP 8 지침에 따라 수행 할 것입니다. 코드를 읽어야하는 사람은 누구나 코드를 읽어 주셔서 감사합니다.

    http://www.python.org/dev/peps/pep-0008/

    왜 하나가 단순히 다른의 부분 집합이기 때문에, 인수 및 지역 변수를 구별 할 필요가있다. 로컬 전역 문제가있는 경우 locals(), globals()vars()을 사용하여 범위를 볼 수 있습니다. inspect 모듈도 도움이 될 수 있습니다. 가능하다면 가능한 한 전역 변수를 사용하지 마십시오.

    0

    그건 정말 끔찍한 일입니다. 전역 및 로컬 객체에 특별한 명명 체계를 사용하는 이유는 없습니다. 또한 함수, 클래스 또는 상수가 아닌 경우 전역 개체가 없어야합니다.

    상수 이름은 대문자 여야하고 LIKE_THIS 밑줄로 구분해야하며 클래스 이름은 LikeThis와 같으며 함수 및 메서드 이름은 다른 이름처럼 보입니다. 구현 특정 객체는 언제든지 변경/제거 할 수 있거나 다른 좋은 이유로 인해 밑줄을 긋아야합니다.

    파이썬 스타일 가이드 PEP 8을 읽어보아야합니다. PEP 8에서는 코드를 읽기 쉽게 만들지 않는 한 스타일 관련 규칙을 다룹니다. 대부분의 Python 프로젝트는이 스타일 가이드 또는 적어도이 스타일 가이드의 호환 버전을 따릅니다.

    1

    전역 변수를 수정하려면 함수 시작시 global 키워드를 사용하여 선언해야하기 때문에 보통 변수가 지역 변수이고 전역 변수인지 분명합니다. 그러나 전역 선언문을 추가하는 경우가 있습니다. 객체를 전역 적으로 강조하기 위해 파이썬이 컴파일하지 않아도되는 경우도 있습니다. 변경 가능한 전역 데이터 구조를 수정합니다.

    인수는 함수 선언에 있기 때문에 분명해야합니다.

    다른 사람들처럼 상수는 UPPER_CASE_WITH_UNDERSCORES에 있어야하며 이는 여러 언어에서 공유하는 규칙입니다.

    전역 변수, 지역 변수 및 매개 변수 변수를 추적하는 데 문제가있는 것으로 확인되면 문제가 너무 길고 너무 많이 사용하는 것이 좋습니다. 함수 &은 짧아야하며 정확히 한 가지를 수행해야합니다. 내 기능이 약 10-20 줄의 코드를 넘는다면 리팩토링 가려움증이 생기기 시작합니다.

    로버트 마틴 (Robert Martin)이 작성한 클린 코드 (Clean Code) 책을 읽어 보는 것이 좋습니다. 예제는 자바로되어 있지만 원칙은 모든 언어에 적용됩니다.