형들
책보다가 나온건데 1024란 숫자를 바이트열로 변환하는 걸 다음과 같이 할수 있다는데
(1024).to_bytes(2, byteorder = 'big')
여기서 다른부분은 다이해가 가는데 1024를 괄호로 감싸준게 잘 이해가 안됨.
괄호 없애니깐 "invalid syntax"라면서 에러 나던데 이거 왜이런거야?
내생각에는 (1024)나 1024나 둘다 integer객체라서 어차피 to_bytes라는 메소드는 가지고 있을거같은데
괄호가 하는 역할이 뭔지 몹시 궁금함. 도와주십쇼 성님들
()로 감싸지 않으면 뒤의 .이 실수에서 소숫점 표현할 때 쓰는 .인지, 아니면 멤버 호출하는 연산자 .인지 구분 안가니까 그렇게 해놓은 것 아닐까요.
음 내 표현이 맞을지는 모르겠는데 일단 a = 1024; b = a.to_bytes(2, byteorder = 'big'); print(b); 이렇게 하는거나 b = (1024).to_bytes(2, byteorder = 'big'); 이렇게 하는거나 차이가 없는 것으로 미루어 보았을 때, 저 코드에서 괄호의 역할은 1024라는 숫자가 변수에 담겨져 있는 상태와 똑같이 만들어 준다는 것을 알 수 있음 파이썬에 대한 확실한 개념을 이해하고 있지 않아서 나도 뭐라고 딱히 말은 못 해주겠는데 일단 저 코드에서는 (1024) 이렇게 묶어주는 것이 변수와 같은 취급을 하게 해주기 위함이라는 거임 좀 길게 풀어썼음
1234처럼 정수 리터럴이 아닌, 정수 변수는 ()를 쓰지 않아도 되는 것과 비교해보면 그런 것 같습니다.
중간에 똑같이 만들어준다를 똑같이 "취급해 준다"로 정정함
내 의견에 211.109님 의견을 더하면 확실히 이해 될듯
조금 더 논의를 확장하면 1+2의 경우 1과 2에 괄호가 없는데도 제대로 된 리터럴이 되어 3이라는 결과가 나오죠. 즉 리터럴도 변수와 동일하게 자기 자료형의 메소드나 연산자를 괄호 없이 사용할 수 있습니다. 하지만 .의 경우 숫자표기법에 의한 예외적인 경우라고 생각됩니다.
형들 고마워. 형들덕에 말끔히 이해함;;; ㄷㄷ 개똑똑하네;;