python - "<method> takes no arguments (1 given)"但我没有给

标签 python methods call

我是 Python 新手,我编写了这个简单的脚本:

#!/usr/bin/python3
import sys

class Hello:
    def printHello():
        print('Hello!')

def main():
    helloObject = Hello()
    helloObject.printHello()   # Here is the error

if __name__ == '__main__':
    main()

当我运行它时 (./hello.py) 我收到以下错误消息:

Traceback (most recent call last):
  File "./hello.py", line 13, in <module>
    main()
  File "./hello.py", line 10, in main
    helloObject.printHello()
TypeError: printHello() takes no arguments (1 given)

为什么 Python 认为我给 printHello() 一个参数,而我显然没有?我做错了什么?

最佳答案

错误是指调用 helloObject.printHello() 等方法时隐式传递的隐式 self 参数。该参数需要显式包含在实例方法的定义中。它应该是这样的:

class Hello:
  def printHello(self):
      print('Hello!')

关于python - "<method> takes no arguments (1 given)"但我没有给,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6614123/

相关文章:

python - 确定从python中导入类的位置

python - 在 python pandas 中将时间对象转换为日期时间格式

python - 元组(键,值)到字典 ValueError : dictionary update sequence element #0 has length 6; 2 is required

ruby-on-rails - 如何在 Rails 中发送 URL 请求?

python - 在 Python 中更改了对象

java - 当用户将命令行参数留空时如何正确显示错误?

ruby - 如何使用哈希在 Ruby 中存储方法?

c# - 在 C# 中的方法内停止循环

java |我的 Action 监听器没有被调用

JavaScript 函数调用脱糖