Вызов переменной из другого класса

Midav

Новичок
Пользователь
Янв 3, 2021
8
0
1
как вызвать переменную r ?
Код:
class A:
    def a(self):
        print(self.r)

class B(A):
    def b(self):
        self.r = 1
        A().a()

t = B()
t.b()
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 648
472
83
а я ее не вызвал?
ну можно наоборот... но это не совсем правильно...
Python:
class A:
    def a(self):
        print(self.r)


class B(A):
    def __init__(self):
        self.r = 1

    def b(self):
        self.a()


t = B()
t.b()

правильно вот так...
Python:
class A:
    def __init__(self):
        self.r = None

    def a(self):
        print(self.r)


class B(A):
    def __init__(self):
        super().__init__()
        self.r = 1

    def b(self):
        self.a()


t = B()
t.b()
 
Последнее редактирование:
  • Мне нравится
Реакции: Midav

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 648
472
83
наверное так хотели
Python:
class A:
    def __init__(self):
        self.r = 1

    def a(self):
        print(self.r)


class B(A):
    def b(self):
        self.a()


t = B()
t.b()
 

Midav

Новичок
Пользователь
Янв 3, 2021
8
0
1
наверное так хотели
Python:
class A:
    def __init__(self):
        self.r = 1

    def a(self):
        print(self.r)


class B(A):
    def b(self):
        self.a()


t = B()
t.b()
Не мне надо вызвать переменную self.r в другом классе
 

Midav

Новичок
Пользователь
Янв 3, 2021
8
0
1
а я ее не вызвал?
ну можно наоборот... но это не совсем правильно...
Python:
class A:
    def a(self):
        print(self.r)


class B(A):
    def __init__(self):
        self.r = 1

    def b(self):
        self.a()


t = B()
t.b()

правильно вот так...
Python:
class A:
    def __init__(self):
        self.r = None

    def a(self):
        print(self.r)


class B(A):
    def __init__(self):
        super().__init__()
        self.r = 1

    def b(self):
        self.a()


t = B()
t.b()
Спасибо понял
А это только через наследование можно сделать ?
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 648
472
83
ну можно вернуть переменную из метода класса и использовать ее в методе другого класса...
для этого нужно будет делать объекты обоих классов...
как я понял по вашему коду, что вы хотите, без наследования никак...
 

Форум IT Специалистов