python - 垃圾邮件类:numInstances = 0 def __init__(self):
问题描述
class Spam:
numInstances = 0
def __init__(self):
Spam.numInstances = Spam.numInstances + 1
def printNumInstances():
print("Number of instances created: %s" % Spam.numInstances)
x = Spam()
x.printNumInstances()
这给了我这个错误:
Traceback (most recent call last):
File "main.py", line 9, in <module>
x.printNumInstances()
TypeError: printNumInstances() takes 0 positional arguments but 1 was given
我不明白为什么。
我猜它应该打印“1”。
解决方案
您已声明printNumInstances
为静态方法,但您将其作为实例方法调用。
我想你想要Spam.printNumInstances()
(虽然它应该是一个类方法,但如果我正确理解代码,请参阅:@staticmethod 和@classmethod 有什么区别?)
推荐阅读
- laravel - Laravel api - 如何上传文件
- windows - 将 VS Code 与本机 Windows OpenSSH 客户端一起使用
- python - Stackexchange Python API 中的高级过滤
- java - 如何在android中创建一个新文件夹?
- python - 抓取网站为链接返回不同的href
- google-sheets - 添加空白以导入范围数据
- javascript - IE 不支持 readAsBinaryString
- c++ - 使用带有圆()括号的构造函数参数初始化类内成员?
- java - 当我尝试输入本地地址时出错
- symfony - Symfony 4 学说多对多与 findby -> 未找到列:1054