본문 바로가기
프로그래밍/Python

[Python / 파이썬] 특정 라이브러리에서 사용가능한 메서드들(함수들) 다 찾기

by Mr.noobiest 2024. 1. 26.

Python

 

 

Python 내가 쓸 수 있는 모든 메서드들을 검색하는 법


Jupyter notebook이나 VSC나 코랩같은 곳에서는 특정 클래스(라이브러리)를 선택한 이후 "." 옆에서 탭을 누르면 사용가능한 메서드들이 자동으로 표시된다.

코랩에서는 어떤 종류인지도 떠서 사용하기 편하다.

 

문제는 이러한 자동 표시기능이 가끔 이상하게 동작하는 경우가 많고, __method 와 같이 밑줄로 표시되는 경우에는 목록에 표시되지 않을 수 도 있다.

 


 

 

표시가 안되는 문제

 

아래 코드 예시는 Powerpoint(.pptx)의 슬라이드를 선택하고, 특정 도형(shape)를 제거하는 코드다.

for slide in parsed.slides:
    if slide.slide_id == 755:
        for shape in slide.shapes:
            if shape.shape_type != MSO_SHAPE_TYPE.LINE :
                
                shape_element = shape.element
                slide.shapes._spTree.remove(shape_element)

 

그런데 아래 이미지에서는 "slide.shapes." 뒤에 사용가능한 메서드들에 _spTree가 표시되지 않는 것을 알 수 있다.

 

이처럼 사용가능한 명령어들이 제대로 표시되지 않을경우 인터넷에서 검색하거나 chatGPT에게 물어보면 찾을 수는 있지만 너무 귀찮다.

이때 사용가능한 명령어가 dir 이다.

 

 


 

 

 

Python기본 명령어 dir


dir은 Python에서 제공하는 기본 함수고, 안에 특정 모듈을 넣고 실행하면 사용가능한 모든 메서드(요소)들이 표기된다.

만일 이러한 기본 명령어가 제대로 실행되지 않는다면, __builtins__.dir()로 사용하면 된다.

위에서 제대로 표시되지 않던 slide.shapes가 사용할수 있는 명령어들을 모두 확인해보자.

print(dir(slide.shapes))

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__',
'__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__',
'__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__module__', 
'__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
'__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_add_chart_graphicFrame',
'_add_cxnSp', '_add_graphicFrame_containing_table', '_add_pic_from_image_part',
'_add_sp', '_add_textbox_sp', '_add_video_timing', '_cached_max_shape_id',
'_element', '_grpSp', '_is_member_elm', '_iter_member_elms', '_next_ph_name',
'_next_shape_id', '_parent', '_recalculate_extents', '_shape_factory', '_spTree',
'add_chart', 'add_connector', 'add_group_shape', 'add_movie', 'add_ole_object',
'add_picture', 'add_shape', 'add_table', 'add_textbox', 'build_freeform',
'clone_layout_placeholders', 'clone_placeholder', 'element', 'index', 'parent',
'part', 'ph_basename', 'placeholders', 'title', 'turbo_add_enabled']

 

엄청 많이 나오는 것을 확인할 수 있다.

 

 

끝.

728x90
반응형