Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3.x-对象在类中不可用_Python_Python 3.x_Object_Constructor - Fatal编程技术网

Python3.x-对象在类中不可用

Python3.x-对象在类中不可用,python,python-3.x,object,constructor,Python,Python 3.x,Object,Constructor,在下面的代码中,我对类和将对象传递给第二个类有问题,行Class one正确地记录到日志文件中,在Class 2中,行Class two打印在屏幕上输出,但是当它到达Class two的默认构造函数中的记录器行时,我得到下面的错误,第二行没有写入日志文件 注意:记录器已定义并在一级正常工作。 错误: NameError: name 'logger' is not defined 代码: 在这种情况下工作 试试看: def logger(): print("\a") class x:

在下面的代码中,我对类和将对象传递给第二个类有问题,行
Class one
正确地记录到日志文件中,在Class 2中,行
Class two打印
在屏幕上输出,但是当它到达Class two的默认构造函数中的记录器行时,我得到下面的错误,第二行没有写入日志文件

注意:记录器已定义并在一级正常工作。

错误:

NameError: name 'logger' is not defined
代码:


在这种情况下工作

试试看:

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

class x:
    logger = logger()
    ....

在这种情况下工作

试试看:

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

class x:
    logger = logger()
    ....

可能您正在尝试以下内容:

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

可能您正在尝试以下内容:

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

logger
来自哪里?您的代码示例生成一个
名称错误
,因为
记录器
既没有导入也没有定义。练习本课:请使用显示此
记录器
来源的代码更新您的问题。另外,错误指的是哪一行?您还应该使用完整的错误回溯更新问题。
logger
来自哪里?您的代码示例生成一个
名称错误
,因为
记录器
既没有导入也没有定义。练习本课:请使用显示此
记录器
来源的代码更新您的问题。另外,错误指的是哪一行?您还应该使用完整的错误回溯更新问题。排序后,我的问题是我调用的是
logger.write
而不是
self.logger.write
。排序后,我的问题是我调用的是
logger.write
而不是
self.logger.write