Возможно ли достать переменную и функции в классе? 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())
И кстати советую имена классов начинать с Большой Буквы, так всегда легко отличить класс от функции, если код был импортирован с другого файла.