코드 객체는 CPython 구현의 저수준 세부 정보입니다. 각각은 아직 함수에 바인딩되지 않은 실행 코드 덩어리를 나타냅니다. 코드 개체는 실행 가능한 코드의 일부를 나타내지만 그 자체로 직접 호출할 수는 없습니다. 코드 개체를 실행하려면 exec 키워드를 사용해야 합니다.
아래 예제에서 코드 개체가 주어진 코드 조각에 대해 생성되는 방식과 모자 코드 개체와 관련된 다양한 속성이 무엇인지 볼 수 있습니다.
예시
code_str = """ print("Hello Code Objects") """ # Create the code object code_obj = compile(code_str, '<string>', 'exec') # get the code object print(code_obj) #Attributes of code object print(dir(code_obj)) # The filename print(code_obj.co_filename) # The first chunk of raw bytecode print(code_obj.co_code) #The variable Names print(code_obj.co_varnames)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
<code object <module> at 0x000001D80557EF50, file "<string>", line 2> ['__class__', '__delattr__', '__dir__', '__doc__', ……., '__subclasshook__', 'co_argcount', 'co_cellvars', 'co_code', 'co_consts', 'co_filename', 'co_firstlineno', …..,posonlyargcount', 'co_stacksize', 'co_varnames', 'replace'] <string> b'e\x00d\x00\x83\x01\x01\x00d\x01S\x00' ()