У меня есть следующий класс:Как получить переменную из другого класса?
class Login():
#PROMPT THE OPERATOR TO LOGIN
def login(self):
self.usr = input("usr> ")
self.pwd = getpass.getpass("pwd> ")
self.check_login()
У меня тоже есть этот класс:
class Kernel(Login):
#THIS IS WHERE THE OPERATOR CAN ENTER STUFF AND SHIT.
def kernel(self):
obj = Login()
kernel_input = input(obj.login.self.usr + "@" + OS_NAME.lower() + ">")
Однако, я понятия не имею, как получить переменную self.usr из класса Вход для работы над классом Kernel который является ребенком до класса Войти.
Как вы можете видеть, я создал объект Login() и сохранил его в переменной obj. В классе Login существует метод, называемый логином, который содержит переменную self, называемую usr.
Я попытался назвать его в другом классе, используя:
obj.usr
obj.self.usr
obj.login.usr
obj.login.self.usr
Но ничего из этого не работает. Как я мог сделать эту работу?
Это кажется странным, чтобы создать экземпляр Логин() внутри экземпляра ядра, когда ядро уже подклассы Логин (поэтому он имеет все те же методы и атрибуты, как, например Login, без вызова Login() – Ben
Базовые классы обычно являются отношениями «is-a». «Ядро» - это «Логин». Вместо этого «Kernel» должен иметь метод «login». –
Согласен с Mark здесь. Нечетный стиль дизайна:) – Shashank