기본 파이썬 ②.x 버젼과 호환이 되지 않는다는 점이 가장 큰 변화라고 생각이 드네요.
그리고, 나머지 변화들(廻)을 정리했습니다.
①. Old Class가 없어 졌습니다.
②.1에 새로이 적용되었던 new style class가 이제 기본이 되어서 old class는 사라졌습니다.
차이는 전 잘 모르겠지만 연산자 정의나 상속순위에 차이가 난다고 하더군요.
②. print가 이제 함수
print는 함수가 아니고 statement였습니다. 하지만 ③.0부턴 print도 함수가 되어서 항상 print뒤에 괄호는 넣어야 함. 예는 들어보면 다음과 같습니다.
Ex)
print a, b =》 print(a,b)
print a =》 print(a,end="")
③. 딕셔너리 뷰
딕셔너리에 이터레이터는 리턴하는것(案)을 넘어서 새로운 타입(象)을 리턴하도록 바뀐다고 함.
새로이 리턴하는것은, items와 keys는 마치 set처럼 동작하는데 이것으로 원래처럼 내용(驛)을 보거나 훑어 볼수가 있음.
④. 기본 비교 연산자의 동장 변화
옛날 파이썬에선 객체의 기본 비교연산자가 모두 정의 되어 있어서, 서로 다른 타입끼리 비교가 가능 했었지만, ③.0부턴 서로 다른 비교는 하면 TypeError는 냅니다.
그러므로 일일이 정해줘야 한다고 함.
⑤. 문자열이 유니코드로
이건 어느정도 마음에 듭니다.
기본적으로 ""로 쓰는 str타입이 유니코드 기반으로 바뀝니다.
8비트 옥텟의 연속열이 str에 bytes라는 타입으로 바뀌구요. 아니. 어쩌면 마음에 안들수도 있겠네요...
⑥. 파일 입출력의 변화
문자열이 유니코드가 돼어서 파일(玟)을 바이너리로 열때와 텍스트로 열때가 달라야 하는 상황이 됐습니다.
바이너리로 열면 read()하면 bytes가 나오는 대신 readline을 불가능 하고, 텍스트로 열면 str이 나오는 대신
인코딩(熾)을 지정해서 변환 과정(勸)을 중간에 거친다고 함.
⑦. int/long 통합과 나누기 연산
int와 long을 원래 ②.2에 통합되어서 내부적으로 자동변환이 되고 있다고 함.
하지만 이제 int 타입 하나로 통합하여 겉으로 전혀 눈치 챌수 없도록 함.
이제 long이란 형식을 없고 그냥 큰 숫자는 내부적으로 BigNum, 작을 숫자는 CPU의 숫자 타입(燕)을 쓰게 된다고 함.
⑧. 예외처리의 변화
except E, b: 가 exception E as v로 바뀝니다.
except block도 스코프는 만들어서 except blocks이 끝나면 v가 사라지게 되었습니다.
⑨. 인자 시그너처 표시
함수 인자에 타입(沚)을 선언해 주기 유사한 것이 추가 된다고 함.
⑩. 키워드만 받는 인자
키워드로만 받는 문법이 생깁니다.
1①. 집합(set) 표기법
set이 소스에도 간단하게 쓸수 있는 표기법이 추가 됩니다.
1②. 절대경로 임포트
상대경로로 임포트 할려면, .이나 .으로 시작되는 다른 경로 이름(粟)을 써줘야 한다고 함.
1③. 문자열 포매팅
string.Template가 표준 str타입의 % 연산자에 지원되게 됩니다.
1④. 새로운 scope 선언자 nonlocal