otlock
149
2021-03-10 19:33:27
2
154

파이썬 질문입니다.


교수님께서 C언어 자바 파이썬 이 세가지로 프로그래밍 해서 문제를 풀어보시라 하는데


불행히도 이수업은 C언어 자료구조 수업입니다...

그중 곤란해 하고 있는 문제가 데이터 타입의 크기를 구하는 문제입니다.


C언어 같은 경우엔 sizeof()를 사용하면 되는데

char c; 처럼 해당 변수값의 자료형의 크기를 구하는건 자바와 파이썬은 불가능하지 않나요??


애초에 자바는 sizeof가 없고 .BYTE는 가능한데 변수에는 활용이 안되고

파이썬은 변수타입이 가변형인데 어찌할 방법을 모르겠네요..



import sys

x = 1
y = 'a'
print(type(x))
print(type(y))
print(sys.getsizeof(type(x))
print(sys.getsizeof(type(y))


가령 이런식으로 해도

어차피 타입이 클래스다보니 결과 값이 416으로 동일하게 나왔는데

1. c언처럼 구현하는 방법은 없을까요? (예 : char c크기는 1)

2. 위의 결과 값은 왜 416이 나온걸까요? 


0
  • 답변 2

  • tgbyhn
    3
    2021-03-10 21:46:21

    1.

    python에서 int의 크기는 28byte부터 시작해서 변수의 숫자가 커질수록 크기가 커집니다.

    print(sys.getsizeof(1)) # 28 byte

    print(sys.getsizeof(10**10)) # 32 byte


    2.

    print(sys.getsizeof(x)) # 객체 x의 사이즈 : 28 byte

    print(sys.getsizeof(type(x))) # 클래스 'int'의 사이즈 : 416 byte


    자세한 것은 여기서 찾아보세요.

    https://stackoverflow.com/questions/59342632/memory-usage-of-python-base-types-particulary-int-and-float

  • otlock
    149
    2021-04-15 18:59:27
    감사합니다!
  • 로그인을 하시면 답변을 등록할 수 있습니다.