当前位置: 首页 > 知识库问答 >
问题:

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

江烨伟
2023-03-14

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

1.第一个.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个答案

罗渝
2023-03-14

我不确定您想做什么,但第一个问题是您需要使用提供的msg参数初始化Log的实例。您在这里所做的first.Log.debug(“我处于调试模式”)是在不创建实例的情况下调用Log的debug方法。

debug方法中,msg参数是必需的,但从未使用过。相反,该方法将简单地尝试获取在\uuuu init\uuuu中定义的self.msg

此代码的一种工作方式是:

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()

 类似资料:
  • 我无法通过错误: 我检查了几个教程,但似乎没有什么不同于我的代码。我唯一能想到的是Python3.3需要不同的语法。 如果我理解正确,会自动传递给构造函数和方法。我做错了什么?

  • 我正在学习python。我创建了一个包含2个方法的类可视化工具。现在我想在第二个方法中调用第一个方法。我读到我必须使用self: 这很有效。现在我添加了其他参数: 我从我的调用它: 现在我得到一个错误: 我检查了,参数3在那里,参数序列是相同的。我认为它与自我冲突。 我怎样才能解决这个问题?我的类中是否需要init方法? 编辑:在我的主页上:

  • 问题内容: 我是python新手,碰壁了。我遵循了一些教程,但无法克服错误: 我检查了一些教程,但似乎与我的代码没有什么不同。我唯一能想到的是python 3.3需要不同的语法。 主要技巧: 泵类: 如果我正确理解,“自我”将自动传递给构造函数和方法。我在这里做错了什么? 我正在将Windows 8与python 3.3.2一起使用 问题答案: 你需要在此处实例化一个类实例。 采用 小例子

  • 我尝试在谷歌中找到解决方案,但谷歌中的所有解决方案都不适合我,也许在这里我得到了正确的答案。 我有以下代码: 我得到了这个错误: 回溯(最后一次调用):文件“位置文件”,第42行,在g=gui_main()文件“位置文件”的第26行,在init btn_next=按钮(self.win_about,text=“next”,fg=“red”,command=gui_main.screen_menu(

  • 问题内容: 我正在开发一个游戏作为附带项目,很有趣,但是遇到了这个错误,我真的不知道为什么会发生… 这是代码: 我这样称呼它: 我得到的错误是: 有任何想法吗? 问题答案: 您不应直接调用类方法,而应创建该类的实例: 要详细说明该错误,您将得到: TypeError:turn()缺少1个必需的位置参数:“ playerImages” 这是因为需要第一个参数()的实例。类方法总是将实例作为第一个参数

  • 我是matplotlib的新手,我试图将文本设置为图形中的一个点,但我有错误: Traceback(最近一次调用):文件main.py,第239行,在main()文件main.py,第232行,在mainp.show_graphic_ortg_drtg()文件/home/josecarlos/Workspace/python/进程/process.py,第363行,show_graphic_ort