728x90
반응형
질문 : Python에서 증가 및 감소 연산자의 동작
사전 증가 / 감소 연산자를 변수 (예 : ++count
)에 적용 할 수 있습니다. 컴파일되지만 실제로 변수의 값을 변경하지는 않습니다!
파이썬에서 사전 증가 / 감소 연산자 (++ /-)의 동작은 무엇입니까?
Python이 C / C ++에서 볼 수있는 이러한 연산자의 동작과 다른 이유는 무엇입니까?
답변
++
는 연산자가 아닙니다. 두 개의 +
연산자입니다. +
연산자는 아무 일도하지 않는 ID 연산자입니다. (설명 : +
및 -
단항 연산자는 숫자에서만 작동하지만 가상의 ++
연산자가 문자열에서 작동하지 않을 것이라고 가정합니다.)
++count
다음과 같이 구문 분석
+(+count)
어떤 의미로
count
원하는 작업을 수행하려면 약간 더 긴 +=
count += 1
일관성과 단순성을 위해 ++
및 --
연산자가 제외되었다고 생각합니다. 나는 귀도 반 로섬이 결정에 대해 준 정확한 주장을 모르지만 몇 가지 주장을 상상할 수 있습니다.
- 더 간단한 구문 분석. 기술적으로
++count
++
,count
(단항++
연산자 1 개)처럼 쉽게+
,+
,count
(두 개의 단항+
연산자)가 될 수 있기 때문에 모호합니다. 중요한 구문상의 모호성은 아니지만 존재합니다. - 더 간단한 언어.
++
+= 1
의 동의어 일뿐입니다. 이것은 C 컴파일러가 어리 석고 대부분의 컴퓨터가 가지고있는inc
a += 1
을 최적화하는 방법을 몰랐기 때문에 발명 된 속기입니다. 컴파일러와 바이트 코드 해석 언어를 최적화하는 오늘날, 프로그래머가 코드를 최적화 할 수 있도록 언어에 연산자를 추가하는 것은 일반적으로 특히 일관되고 읽을 수 있도록 설계된 Python과 같은 언어에서 눈살을 찌푸립니다. - 혼란스러운 부작용.
++
연산자를 사용하는 언어에서 일반적인 초보자 오류 중 하나는 사전 및 사후 증가 / 감소 연산자 간의 차이 (우선 순위 및 반환 값 모두)를 혼합하는 것입니다. Python은 언어 "gotcha"-s를 제거하는 것을 좋아합니다. C에서 사전 / 사후 증가 의 우선 순위 문제 는 꽤 털이 많고 엉망이되기 쉽습니다.
출처 : https://stackoverflow.com/questions/1485841/behaviour-of-increment-and-decrement-operators-in-python
728x90
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
requirements.txt에 직접 github 소스를 명시하는 방법 (0) | 2021.09.01 |
---|---|
Python setup.py가 Travis CI에서 잘못된 명령 'bdist_wheel'을 말하는 이유 (0) | 2021.09.01 |
Python에서 C / C ++ 호출 (0) | 2021.08.30 |
dict.copy () 이해- shallow or deep? (0) | 2021.08.30 |
파이썬에서 오늘 날짜를 YYYY-MM-DD 형태로 얻는 방법 (0) | 2021.08.30 |