일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 알고리즘
- 빅데이터
- 데이터구조
- 사이버보안
- 딥러닝
- 컴퓨터공학
- I'm Sorry
- 자바스크립트
- 파이썬
- 2
- 소프트웨어
- 인공지능
- 자료구조
- 보안
- 버전관리
- 데이터과학
- Yes
- 소프트웨어공학
- 데이터베이스
- 네트워크보안
- 웹개발
- 프로그래밍
- 코딩
- 네트워크
- 머신러닝
- 컴퓨터비전
- 데이터분석
- 컴퓨터과학
- 프로그래밍언어
- 클라우드컴퓨팅
- Today
- Total
스택큐힙리스트
파이썬에서 현재 모듈 내에 있는 모든 클래스 목록을 어떻게 얻을 수 있나요? 본문
나는 모듈에서 클래스를 모두 추출하는 사람들의 많은 예시를 보았다. 일반적으로 이러한 방식으로 한다.
# foo.py
class Foo:
pass
# test.py
import inspect
import foo
for name, obj in inspect.getmembers(foo):
if inspect.isclass(obj):
print obj
멋지다.
하지만 현재 모듈에서 모든 클래스를 가져오는 방법을 찾을 수 없습니다.
# foo.py
import inspect
class Foo:
pass
def print_classes():
for name, obj in inspect.getmembers(???): # what do I do here?
if inspect.isclass(obj):
print obj
# test.py
import foo
foo.print_classes()
이건 아마도 굉장히 분명한 것이지만, 난 아무것도 찾지 못했어. 누군가 도와줄 수 있을까?
답변 1
이것을 시도해보세요.
import sys
current_module = sys.modules[__name__]
당신의 문맥에서:
import sys, inspect
def print_classes():
for name, obj in inspect.getmembers(sys.modules[__name__]):
if inspect.isclass(obj):
print(obj)
그리고 더 좋은 것은:
clsmembers = inspect.getmembers(sys.modules[__name__], inspect.isclass)
inspect.getmembers()가 술어를 취한다는 이유 때문입니다.
답변 2
파이썬은 모듈 기반 언어입니다. 모듈은 관련된 코드를 하나의 파일에 캡슐화하여 코드의 구조를 조직화하는 방법입니다. 모듈을 사용하면 코드를 구성하고 중복을 줄일 수 있습니다.특정 모듈에서 모든 클래스 목록을 가져오는 방법은 매우 간단합니다. 파이썬에서는 내장 모듈인 inspect 모듈을 사용하여 현재 모듈의 클래스 목록을 가져올 수 있습니다.
inspect 모듈을 사용하는 방법은 다음과 같습니다. 우선 inspect 모듈을 가져와야 합니다.
import inspect
그런 다음 inspect.getmembers() 함수를 사용하여 현재 모듈의 클래스 목록을 가져옵니다.
members = inspect.getmembers(sys.modules[__name__], inspect.isclass)
위 코드는 현재 모듈의 클래스 목록을 가져와 members 변수에 저장합니다.
inspect.getmembers() 함수는 튜플의 리스트를 반환합니다. 튜플의 첫 번째 요소는 클래스의 이름이며 두 번째 요소는 클래스 자체입니다. 이 리스트를 이용해 클래스 목록을 생성할 수 있습니다.
class_list = [m[1] for m in members]
이제 class_list 변수에는 현재 모듈의 모든 클래스 목록이 포함되어 있습니다.
이 방법을 사용하면 현재 모듈의 클래스 목록을 쉽게 가져올 수 있습니다. 현재 모듈의 클래스 목록을 가져와 코드를 보다 잘 구성하고 중복을 줄이는 데 도움이 될 수 있습니다.
종합하면, 파이썬에서는 inspect 모듈을 사용하여 현재 모듈의 클래스 목록을 가져올 수 있습니다. 이 방법을 사용하면 코드를 보다 잘 구성하고 중복을 줄일 수 있으며, 모듈 기반 언어인 파이썬의 특징을 효과적으로 활용할 수 있습니다.