Как вывести все переменные класса в Python?

Пользователь

от sherwood_littel , в категории: Python , 2 года назад

Как вывести все переменные класса в Python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 2 года назад

Чтобы вывести все переменные класса, существует несколько способов.

Рассмотрим два.

В первом способе ( Более удобный ) мы будем использовать функцию vars()

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
class Axes: 
    def set_values(self, x, y, z): # Объявляем метод, в котором будем записывать переменные
        self.x = x
        self.y = y
        self.z = z

if __name__ == "__main__": 
    axes = Axes() # Создаем экземпляр класса
    axes.set_values(x=5, y=10, z=15) # Устанавливаем значение переменных

    print(vars(axes)) # Выводим переменные с помощью функции vars()
                      # Вывод : {'x': 5, 'y': 10, 'z': 15}

Во втором способе мы будем использовать функцию locals()

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
class Axes: 
    def set_values(self, x, y, z): # Объявляем метод, в котором будем записывать переменные
        self.x = x
        self.y = y
        self.z = z

        print(locals())

if __name__ == "__main__": 
    axes = Axes() # Создаем экземпляр класса
    axes.set_values(x=5, y=10, z=15) # Устанавливаем значение переменных и получаем их
                                     # Вывод : {'self': <__main__.Axes object at 0x0000023F0271F700>, 'x': 5, 'y': 10, 'z': 15}


Пользователь

от kennedi_pfeffer , год назад

@sherwood_littel 

Вы можете использовать функцию vars() для вывода всех переменных класса в Python. Например:

1
2
3
4
5
6
7
class MyClass:
    def __init__(self):
        self.a = 1
        self.b = 2

obj = MyClass()
print(vars(obj))


Это выведет словарь с именами и значениями всех переменных класса: {'a': 1, 'b': 2}


Если вы хотите получить список всех имен переменных класса, вы можете использовать функцию dir():

1
2
3
4
5
6
7
class MyClass:
    def __init__(self):
        self.a = 1
        self.b = 2

obj = MyClass()
print(dir(obj))


Это выведет список всех имен переменных и методов класса, включая методы базовых классов

1
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'a', 'b']