'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.)
일반적으로 모든 언어에서 키워드 또는 내장 함수를 이클립스하는 변수 이름을 사용하는 것은 허용되는 경우에도 좋지 않습니다.
id객체의 메모리 주소를 제공하는 내장 함수입니다. 당신이 당신의 기능 중 하나의 이름을 지정하는 경우 id, 당신은 말을해야합니다 __builtins__.id원본을 얻을 수 있습니다. id전 세계적으로 이름을 바꾸는 것은 작은 스크립트가 아닌 혼란에 빠집니다.
그러나 내장 이름을 변수로 재사용하는 것이 로컬로 사용되는 한 그렇게 나쁘지는 않습니다. 파이썬에는 (1) 일반적인 이름이 있고 (2) 어쨌든 많이 사용하지 않는 많은 내장 함수가 있습니다. 이것들을 로컬 변수 또는 객체의 멤버로 사용하는 것은 상황에서 분명하기 때문에 분명합니다.
예:
def numbered(filename):
file = open(filename)
for i,input in enumerate(file):
print "%s:\t%s" % (i,input)
file.close()
유혹적인 이름을 가진 일부 내장 기능 :
idfilelistmapall,anycomplexdirinputslicebuffer
에서 PEP 8 - 파이썬 코드에 대한 스타일 가이드 섹션에서 다음지도가 나타납니다 서술 : 명명 스타일 :
single_trailing_underscore_: 파이썬 키워드와의 충돌을 피하기 위해 관례 적으로 사용
Tkinter.Toplevel(master, class_='ClassName')
따라서 질문에 대답하기 위해이 지침을 적용하는 예는 다음과 같습니다.
id_ = 42
변수 이름에 후행 밑줄을 포함 시키면 의도가 명확 해집니다 (PEP 8의 지침에 익숙한 사람들에게).
나는 여기에 인기가없는 것을 말할 수 있습니다 : id()비즈니스 로직에는 거의 사용되지 않는 다소 전문화 된 내장 함수입니다. 따라서 타이트하고 잘 작성된 함수에서 변수 이름으로 변수 이름을 사용할 때 문제가 발생하지 않습니다 .ID가 내장 함수를 의미하지 않는다는 것이 분명합니다.
내장 함수 후에 변수 이름을 짓는 것은 좋지 않습니다. 그 이유 중 하나는 이름이 무시되는 독자에게 혼란을 줄 수 있기 때문입니다.
'id'는 Python에 내장 된 메소드입니다. 'id'에 값을 할당하면 메소드를 덮어 씁니다. "some_id"에서와 같이 식별자를 사용하거나 다른 대문자 방식으로 사용하는 것이 가장 좋습니다.
내장 메소드는 단일 매개 변수를 사용하여 전달한 오브젝트의 메모리 주소에 대한 정수를 리턴합니다.
>>>id (1)
9787760
>>>x = 1
>>>id (x)
9787760
내장 함수의 이름이기 때문입니다.
파이썬은 동적 언어이기 때문에 일반적으로 변수와 함수에 동일한 이름을 부여하는 것은 좋지 않습니다. id ()는 파이썬의 함수이므로 id라는 변수를 사용하지 않는 것이 좋습니다. 그것을 염두에두고, 그것은 당신이 사용할 수있는 모든 함수에 적용됩니다 ... 변수는 함수와 이름이 같아서는 안됩니다.
참고 URL : https://stackoverflow.com/questions/77552/id-is-a-bad-variable-name-in-python
'IT story' 카테고리의 다른 글
| $ http 인터셉터에 $ state (ui-router)를 주입하면 순환 종속성이 발생합니다. (0) | 2020.07.17 |
|---|---|
| memcached에 모든 키를 설정하십시오. (0) | 2020.07.17 |
| Maven 종속성을 사용하도록 Eclipse 빌드 경로를 구성하는 방법은 무엇입니까? (0) | 2020.07.17 |
| 이클립스로 돌아가는 방법? (0) | 2020.07.17 |
| 매트릭스 OpenCV의 크기 (0) | 2020.07.17 |