새로운 Python 연산자!

Apr 04 2023
2023년 4월 1일 :=로 작성된 Python 3.8의 새로운 "해마 연산자"에 대해 많이 언급되었습니다.

2023년 4월 1일

Python 3.8 에서 :=. 이 게시물에서는 잘 알려지지 않은 기발한 이름의 연산자를 소개합니다. Python 3.8에서 사용할 수 있을 뿐만 아니라 2023년 4월 1일 현재 이전 Python 버전에서도 자동으로 사용할 수 있습니다!

해마 연산자 :=

스키 모자 오퍼레이터

로 작성된 "스키 모자" 연산자는 *=0목록, 문자열, 튜플 또는 숫자 값과 같은 변수를 비우는 데 사용할 수 있습니다. 예를 들어 다음 코드를 실행하면 items빈 목록이 됩니다.

items = [1, 2, 3]
items *=0

      
                
Ski Hat Operator *=0

로 쓰여진 "덤벨 연산자"는 [:]=[]목록을 비우는 데 사용할 수도 있지만 목록(및 덜 사용되는 다른 몇 가지 유형)에만 작동하므로 스키 모자 연산자만큼 다재다능하지 않습니다. 다음 코드 뒤에는 items빈 목록이 표시됩니다.

items = [1, 2, 3]
items [:]=[]

      
                
Dumbbell Operator [:]=[]

로 작성된 "lapping cat" 또는 "one and only" 연산자는 ,=iterable의 첫 번째 요소를 선택하고 iterable에 정확히 하나의 요소가 있다고 주장합니다. 다음 코드 뒤에는 first1입니다.

first ,= [1]

      
                
Lapping Cat Operator ,=

3!수학 팬들은 예를 들어 로 작성된 단항 계승 연산자가 부분적으로 Python에 통합되었다는 사실을 알고 기뻐할 것입니다 . 안타깝게도 구현이 불완전합니다. 그러나 다음 단위 테스트는 모두 통과하므로 충분합니다.

assert 0!=1
assert 3!=6
assert 4!=24
assert 5!=120
assert 6!=720
assert 9!=362,880

파이썬은 또한 키워드를 사용하여 abstract추상 클래스의 메서드가 인스턴스화된 개체의 하위 클래스에서 구현되어야 함을 나타낼 수 있습니다. 다음 코드에서 메서드는 name로 정의되므로 abstract클래스의 객체를 호출하면 메서드가 정의되지 않았다는 오류 메시지가 표시됩니다.

class AnAbstractClass:
    def name(self): 
        abstract

>>> AnAbstractClass().name()
NameError: name 'abstract' is not defined

기민한 독자는 내가 제시한 대로 이러한 새로운 연산자가 PEP 8을 위반하는 방식으로 공간의 배치(또는 배치 부족)에 의존한다는 것을 인식할 것입니다 . 그것에 대해 나는 말한다: 하지만 내 방식이 더 재미있다! ++특히 오늘, 4월 1일. C++에서 및 연산자 의 구현을 포함하여 더 많은 연산자를 보려면 <<내 이전 게시물 을 참조하십시오 .

추신: 이 게시물의 모든 내용은 "그 정도면 충분하지 않습니까?"를 제외하고 모두 사실입니다.

이 시리즈의 기사

2016년 4월 1일: 가, 개. 고갱! PD Eastman 이야기
2017년 4월 1일: Krell의 마지막 트윗 2018년 4월 1일
: 기능적 라이프스타일 2020년 4월 1일 : 늙기 전에 통합하기를 희망합니다 . 2023년 4월 1일: 새로운 Python 연산자!