Jai*_*Jai 0 python class python-3.x
我是python的新手.我正在做以下代码,我遇到了一个不受欢迎的结果.请查看我的代码,让我知道我做错了什么:
class TestClass(object):
@classmethod
def __init__(self, val):
self.val = val
@classmethod
def value(self):
return self.val
def Test():
a = TestClass(9)
b = TestClass(8)
c = TestClass(7)
print(a.value(), b.value(), c.value())
Run Code Online (Sandbox Code Playgroud)
期望输出为
9 8 7
Run Code Online (Sandbox Code Playgroud)
但得到输出
7 7 7
Run Code Online (Sandbox Code Playgroud)
我的代码有什么问题.
设置__init__为classmethod实际传递类的方法__init__,self.val实际上设置为类变量,而不是实例变量.
您执行的最终"初始化"将覆盖您设置的所有其他值.
删除@classmethods修复了该问题.
| 归档时间: |
|
| 查看次数: |
38 次 |
| 最近记录: |