Python 3.x - объект недоступен в классе - PullRequest
0 голосов
/ 01 октября 2018

У меня проблема с классами и передачей объекта во второй класс. В приведенном ниже коде строка Class one правильно записывается в файл журнала, а во втором классе строка Class two print выводится на экран, но когдаон попадает в строку регистратора в конструкторе по умолчанию второго класса. Я получаю ошибку ниже, а вторая строка не записывается в файл журнала.

Примечание: регистратор определен и работает нормально в первом классе.

Ошибка:

NameError: name 'logger' is not defined

Код:

class one:

    logger = logger()

    logger.write("Class one")

    twoObj = two(logger)

class two:
    print("Class two print")

    def __init__(self, logger):
        self.logger = logger
        logger.write("Class two")

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Может быть, вы пытаетесь что-то вроде:

class demo_logger:
    def write(self, message):
        print(message)

class two:
    def __init__(self, logger):
        self.logger = logger

    def demo_method(self):
        self.logger.write("Class two: demo method is called")

class one:
    logger = demo_logger()
    logger.write("Class one")
    twoObj = two(logger)

oneObject = one()
oneObject.twoObj.demo_method()

Вывод:

Class one
Class two: demo method is called
0 голосов
/ 01 октября 2018

работает в такой ситуации.

попробуйте:

def logger():
    print("\a")

class x:
    logger = logger()
    ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...