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의 지침에 익숙한 사람들에게).
답변
id
CPython의 메모리 주소이기도 한 개체의 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
답변
내장 함수의 이름이기 때문입니다.