본문 바로가기
Python/Python FAQ

Python 파이썬 클래스의 메소드 목록을 어떻게 얻을 수 있나요?, How do I get list of methods in a Python class?

by 베타코드 2023. 11. 13.
반응형

질문


나는 클래스 내의 메소드를 반복하거나 메소드의 존재에 따라 클래스 또는 인스턴스 객체를 다르게 처리하고 싶습니다. 클래스 메소드의 목록을 어떻게 얻을 수 있을까요?

또한 다음을 참조하십시오:


답변


예제 ( optparse.OptionParser 클래스의 메서드 나열):

>>> from optparse import OptionParser
>>> import inspect
#python2
>>> inspect.getmembers(OptionParser, predicate=inspect.ismethod)
[([('__init__', <unbound method OptionParser.__init__>),
...
 ('add_option', <unbound method OptionParser.add_option>),
 ('add_option_group', <unbound method OptionParser.add_option_group>),
 ('add_options', <unbound method OptionParser.add_options>),
 ('check_values', <unbound method OptionParser.check_values>),
 ('destroy', <unbound method OptionParser.destroy>),
 ('disable_interspersed_args',
  <unbound method OptionParser.disable_interspersed_args>),
 ('enable_interspersed_args',
  <unbound method OptionParser.enable_interspersed_args>),
 ('error', <unbound method OptionParser.error>),
 ('exit', <unbound method OptionParser.exit>),
 ('expand_prog_name', <unbound method OptionParser.expand_prog_name>),
 ...
 ]
# python3
>>> inspect.getmembers(OptionParser, predicate=inspect.isfunction)
...

getmembers가 2-튜플의 리스트를 반환하는 것에 주목하세요. 첫 번째 항목은 멤버의 이름이고, 두 번째 항목은 값입니다.

getmembers에 인스턴스를 전달할 수도 있습니다:

>>> parser = OptionParser()
>>> inspect.getmembers(parser, predicate=inspect.ismethod)
...
반응형

댓글