python WTF 왓더빡 문서 한국어 번역판
https://github.com/buttercrab/wtfpython-ko
그 중에 일부를 살펴보면
ten_words_list = [ "some", "very", "big", "list", "that" "consists", "of", "exactly", "ten", "words" ]
len(ten_words_list )
결과는 9 가 나옴
중간에 콤마 하나 빠져서 그렇데
그냥 그런가보다하고 에러안냄
----------------------------------------
착각하게 되는거
some_list = [1, 2, 3]
some_dict = {
"key_1": 1,
"key_2": 2,
"key_3": 3
}
some_list = some_list.append(4)
some_dict = some_dict.update({"key_4": 4})
리스트랑 딕셔너리에 값추가하는거
print(some_list)
결과는 둘다 None 가 나옴
append 랑 update 는 반환값이 없어서 그렇데
없는데 할당하니까 none 가 되버림
3.
>>> a = 256
>>> b = 256 >>> a is b True >>> a = 257 >>> b = 257 >>> a is bFalse
파이썬에서는 -5 ~ 256 까지를 많이쓰는 숫자로 보고 객체로 만들어놨음
나머지숫자는 is 연산쓰면안됨
컴퓨터의 세계에 그냥 그런가보다 라는건 없다 저경우 ten_word_list[4]는 "thatconsists"다
이 글을 보니 재밌는 떡밥이 생각나서 방금 제조해 보았다
https://ideone.com/akqZN4
그걸 오류 안내고 지좆대로 병합해버리는게 좆같다는건데
2버전의 C 따라하는 쓰레기 같은 문법인데 어쨰서 3에서 유지했는지 모르겠다
첫번째거는 애매해도 두번째거는 꽤 중요한 개념 아닌가?
= 없이 ”some_list.append(4)“ 이렇게 해야 추가되는거??
두번째 꺼를 모르면 걍 파이썬 안쓰는 사람인거
두번째는 문법 기본기라서 억까임 - dc App
근데 다른 언어 쓰다 다시 파이썬하러 오면 한 번씩 검색해보고 쓰게 됨
뭐지 내 기억이 잘못됐나 첫번째거 문법에러 터져서 실행도 안 된다고 생각했는데
두번째는 객체 자기자신을 반환해서 체이닝 하는 다른 언어에서 넘어온 사람이나 그렇고 반환이 자기자신인지 복제본인지 뜯어봐야 알기 때문에 그냥 리턴하지 않는게 더 나은거 같음 , 리턴값 없으면 카피본은 아니라는 소리. 굳이 체이닝해서 메서드 연속 호출하지 말고 그냥 객체의 행동을 지시 하는 객체지향 정통
저게 충분히 언어마다 다를 수 있는 동작인데, 타입이 약해서 IDE에서 즉각적으로 저게 잘못됐다는 걸 알아차릴 수 없다는 게 좆같은 부분임 개인적으로
ide에서 다 알려주는데?? 뭐쓰길래 안나온다는거임
그리고 파이썬은 동적타입이지 약타입은 아님 강타입임
223.62/ 메이저 언어 중에 파이썬이 타입 제일 강한 편일거다
그리고 타입이 강하냐 약하냐는 IDE의 추론 기능에 영향을 미치지 못해 자동 형변환이 랜덤하게 일어나는게 아니라 규칙에 의해 일어나니까
파이썬으로 체이닝 안하게 되는 이유를 생각해보니까 메소드 쭉 연결해서 쓸때 줄바꾸면 들여쓰기 오류임 체이닝을 이유로 얘기한다면 정말 단 5분도 직접 안해보고 댓글로만 배운 좆문가일거 같음 ㅋ
그런 컨벤션이 있는지는 모르겠는데 두번째꺼는 그냥 경험적으로 lst.sort()와 sorted(lst)의 구분 혹은 차이쯤으로 느껴짐
1은 문자열 문법일 뿐이고 2번은 사용자이슈 3번은 이상하네
3번은 아무리 그래도 일관성이 좀 없네
메모리 절약한다고 미리 만들어두는거지 사실은 256 내 숫자여도 is로 비교하면 안되긴함
첫 번째는 요즘 언어는 거의 다 있는 기능인데? 두 번째는 오히려 함수형 패러다임 고려안하면 당연히 저렇게 되는게 맞지. 세 번째는 ㄹㅇ 좆같은 거 맞음. is 는 오버로딩도 지원안하는 개 ㅈ같은 연산자라서 보통 회사에서는 is None 빼고는 안씀