如果我做了这样的功能:
class Counter:
def __init__(self):
self._count = 0
def count(self) -> int:
self._count += 1
return self._count
def reset(self) -> None:
self._count = 0
Run Code Online (Sandbox Code Playgroud)
把它放在python shell中:
>>> s = Counter
>>> s.count()
Run Code Online (Sandbox Code Playgroud)
我最终得到了这个:
TypeError:count()缺少1个必需的位置参数:'self'
难道我做错了什么?我不明白为什么我必须为自己的方法传递一个对象本身.我认为它是自动传递的,因为我使用句点访问该方法.至少这是(我记得,也许是错误的)它在C++中是如此,所以对我来说这对python来说是没有意义的.难道我做错了什么?
基本上,为什么我需要传递s.count(s)而不是s.count().在周期之前,自己是否应该已经初始化为变量?
s = Counter
Run Code Online (Sandbox Code Playgroud)
这不会创建Counter类的实例.它将Counter类分配给变量s.这意味着您尝试在第二行中调用类本身的实例方法.
如果要创建Counter类的实例,则应编写:
s = Counter()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |