Как перечислить только атрибуты данных объекта? - PullRequest
0 голосов
/ 24 января 2019

Учитывая массив NumPy

import numpy as np
a = np.arange(5)

как я могу получить список, содержащий все атрибуты данных a, но без атрибутов метода?

# expected to be part of list
a.shape
a.size
a.ndim

# expected NOT to be part of list
a.sum()
a.all()
a.max()

1 Ответ

0 голосов
/ 24 января 2019
import numpy as np

a = np.arange(5)

attribute_list = [attribute for attribute in dir(a) if not callable(getattr(a, attribute))]

output: ['T', '__array_finalize__', '__array_interface__', '__array_priority__', '__array_struct__', '__doc__', '__hash__', 'base', 'ctypes', 'data', 'dtype', 'flags', 'flat', 'imag', 'itemsize', 'nbytes', 'ndim', 'real', 'shape', 'size', 'strides']

А если вы хотите избежать защищенных атрибутов:

attribute_list = [attribute for attribute in dir(a) if not callable(getattr(a, attribute)) and attribute[0] != '_']


output: ['T', 'base', 'ctypes', 'data', 'dtype', 'flags', 'flat', 'imag', 'itemsize', 'nbytes', 'ndim', 'real', 'shape', 'size', 'strides']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...