TypeError:debug()缺少1个必需的位置参数:' msg'从不同的类调用方法时

时间:2017-03-04 10:47:10

标签: python

请提出我做错了什么,我是编码的新手。

1。 first.py文件:

import logging
class Log:
    def __init__(self,msg):
        self.msg = msg

    def debug(self,msg):
        FORMAT  = "%(asctime)-15s%(message)s"
        logging.basicConfig(filemode = "w", filename="file.log", format = FORMAT, level=logging.DEBUG)
        logging.debug(self.msg)

2。 second.py文件

import first
first.Log.debug("I am in debug mode")

当我运行second.py文件时,我得到的错误是 Logging.Log.debug("我处于调试模式")

TypeError: debug() missing 1 required positional argument: 'msg'** 

1 个答案:

答案 0 :(得分:0)

我不确定您要做什么,但第一个问题是您需要使用提供的Log参数初始化msg的实例。您在此处执行的操作first.Log.debug("I am in debug mode")正在调用debug Log方法而不创建实例。

debug方法中,msg参数是必需的,但它从未使用过。相反,该方法只会尝试获取self.msg定义的__init__

此代码的一种工作方式:

1. first.py file

import logging
class Log:
    def __init__(self,msg):
        self.msg = msg

    def debug(self):
        FORMAT  = "%(asctime)-15s%(message)s"
        logging.basicConfig(filemode = "w", filename="file.log", format = FORMAT, level=logging.DEBUG)
        logging.debug(self.msg)

2. second.py file

import first
# Note that Log is initialized with the msg you want, and only then we call debug()
first.Log("I am in debug mode").debug()