Возможно ли достать переменную и функции в классе? python

Мне нужно переменную из функции в классе первого файла перенести во второй файл. Как это можно сделать?

Пример 1 файла:

class get:
    def abc(self):
        if 1 == 1:
            a = 'text'
        else:
            pass

Пример 2 файла:

from main import *

get = get()
get.abc()
print(a)

Не спрашивайте почему код такой странный, так и должно быть.


Ответы (2 шт):

Автор решения: chagins

Для получения значения полей объекта класса рекомендуется использовать геттеры. Ваш вариант:

#main.py: 

class get:
def abc(self):
    if 1 == 1:
        self.a = 'text'
    else:
        pass

#1.py:

from main import *
get = get()
get.abc()
print(get.a)

Альтернативный вариант:

#get.py:

class get:

def __init__(self):
    # установка а при инициализации
    self.a = self.__abc()

# геттер
def get_a(self):
    # какие-нибудь проверки
    return self.a

def __abc(self):
    if 1 == 1:
        return 'text'
    else:
        pass

#1.py:
from get import *

get = get()
a = get.get_a()
print(a)
→ Ссылка
Автор решения: SLGiraffe

Да, в вашем случае вам после a = 'text' следует прописать return a. Однако после этого функция завершиться, а get() "как бы станет самой переменной": т.е. теперь не print(a), а print(get())

И кстати советую имена классов начинать с Большой Буквы, так всегда легко отличить класс от функции, если код был импортирован с другого файла.

→ Ссылка