Exploration Node

[2-3] 내장함수 dir이 어트리뷰트만을 결과로 반환하고 있습니다.

玄曄 2021. 9. 29. 09:11

노드에 설명에는 변수와 메스드를 반환한다고 했는데 변수만을 나타내고, `keys()` 같은 메소드는 나오지 않아서 질문드립니다!

from sklearn.datasets import load_iris
iris = load_iris()
print(dir(iris))

# 결과 : ['DESCR', 'data', 'feature_names', 'filename', 'frame', 'target', 'target_names']

dir()는 객체가 어떤 변수와 메서드를 가지고 있는지 나열함

 


[답변]

dir()함수로 출력할 것을 임의로 만들수도 있다.

load_iris()는 번취 객체를 반환한다. 번취는 sklearn의 딕셔너리로 이해하면 된다.

Bunch는 sklearn에서 정의한 클래스인데

__dir__함수로 return self.keys()를 반환하기 때문에 dir()을 통해서 다른 함수는 안나오고 keys()만 나오게 됩니다.

 

 

관련 링크

1. 

https://github.com/scikit-learn/scikit-learn/blob/844b4be24/sklearn/datasets/_base.py#L608

 

GitHub - scikit-learn/scikit-learn: scikit-learn: machine learning in Python

scikit-learn: machine learning in Python. Contribute to scikit-learn/scikit-learn development by creating an account on GitHub.

github.com

2. 

https://github.com/scikit-learn/scikit-learn/blob/844b4be24d20fc42cc13b957374c718956a0db39/sklearn/utils/__init__.py#L83