[python] ‘id’는 파이썬에서 잘못된 변수 이름입니다.

id파이썬 에서 변수 이름을 짓는 것이 왜 나쁜 가요?



답변

id() 기본 내장 기능입니다.

id모듈의 내장 기능 에
대한 도움말 __builtin__:

id(...)

    id(object) -> integer

    Return the identity of an object.  This is guaranteed to be unique among
    simultaneously existing objects.  (Hint: it's the object's memory
    address.)

일반적으로 모든 언어에서 키워드 또는 내장 함수를 이클립스하는 변수 이름을 사용하는 것은 허용 되더라도 나쁜 생각입니다.


답변

에서 PEP 8 – 파이썬 코드에 대한 스타일 가이드 섹션에서 다음지도가 나타납니다 서술 : 명명 스타일 :

  • single_trailing_underscore_ : 파이썬 키워드와의 충돌을 피하기 위해 관례 적으로 사용

    Tkinter.Toplevel(master, class_='ClassName')

따라서 질문에 대답하기 위해이 지침을 적용하는 예는 다음과 같습니다.

id_ = 42

변수 이름에 후행 밑줄을 포함 시키면 의도가 명확 해집니다 (PEP 8의 지침에 익숙한 사람들에게).


답변

idCPython의 메모리 주소이기도 한 개체의 ID를 제공하는 내장 함수입니다. 함수 중 하나의 이름을 지정 하면 원본 (또는 CPython) 을 가져 오라고 id말해야 builtins.id합니다 __builtins__.id. id전 세계적으로 이름을 바꾸는 것은 작은 스크립트가 아닌 혼란에 빠집니다.

그러나 내장 이름을 변수로 재사용하는 것이 로컬로 사용되는 한 그렇게 나쁘지는 않습니다. 파이썬에는 (1) 일반적인 이름이 있고 (2) 어쨌든 많이 사용하지 않는 많은 내장 함수가 있습니다. 이것들을 로컬 변수 또는 객체의 멤버로 사용하는 것은 상황에서 분명하기 때문에 분명합니다.

예:

def numbered(filename):
    with open(filename) as file:
        for i, input in enumerate(file):
            print("%s:\t%s" % (i, input), end='')

유혹적인 이름을 가진 일부 내장 기능 :

  • id
  • file
  • list, dict
  • map
  • all, any
  • complex, int
  • dir
  • input
  • slice
  • buffer
  • sum
  • min, max
  • object

답변

나는 여기에 인기가없는 것을 말할 수 있습니다 : id()비즈니스 로직에는 거의 사용되지 않는 다소 전문화 된 내장 함수입니다. 따라서 타이트하고 잘 작성된 함수에서 변수 이름으로 변수 이름을 사용할 때 문제가 발생하지 않습니다 .ID가 내장 함수를 의미하지 않는다는 것이 분명합니다.


답변

내장 함수 후에 변수 이름을 짓는 것은 좋지 않습니다. 그 이유 중 하나는 이름이 무시 된 독자에게 혼동 될 수 있기 때문입니다.


답변

id파이썬의 내장 함수입니다. 값을 할당 id하면 기능이 무시됩니다. 에서처럼 접두사를 추가 some_id하거나에서와 같이 다른 대문자로 사용 하는 것이 가장 좋습니다 ID.

내장 함수는 단일 인수를 사용하여 전달한 오브젝트의 메모리 주소 (CPython에서)의 정수를 리턴합니다.

>>> id(1)
9787760
>>> x = 1
>>> id(x)
9787760


답변

내장 함수의 이름이기 때문입니다.