我在cmd dos中运行了python代码,它返回的err如下所示
File "counts.py", line 3, in <module>
class Student(object):
File "counts.py", line 11, in Student
if Student.count != 0:
NameError: name 'Student' is not defined
这是我的python代码
# -*- coding: utf-8 -*-
import sys
class Student(object):
count = 0
def init(self,name):
self.name = name
Student.count += 1
if Student.count != 0:
print('test fail')
else:
elson = Student('elson')
if Student.count != 1:
print('fail')
else:
print('there are %d student'%Student.count)
print('succeed')
我一时糊涂,不知如何是好,谢谢你的回复
问题解决了,我发现这是因为我的ultraedit的支持有一些问题。我在vscode中输入了它,一切都很顺利
如果您的代码与您发布的完全一致,我发现了一些问题(首先,我无法理解您要查找的输出,因此请更新我,以防我在此处编写的任何内容对您没有意义,以便我可以重新编写我的答案): 1) 你的缩进是错误的,所以你的函数在类外。你知道吗
2)在调用对象的函数内部时,应该使用
self
,而不是类名,在这种情况下是Student
。你知道吗3)您将类声明与对象实例化混合在一起,因此当您添加以下代码时,在我看来,您试图在对象声明中实例化一个对象,这意味着,即使它可以工作,您也可以创建一个无限循环:
解决方案是在类内写入时更改所有
Student.
,并添加self.
,例如:PS:如果您希望迭代实例化的对象的数量,并以这种方式更新计数,那么您也可以使用class方法。只需在迭代计数的方法之前添加
@classmethod
。你知道吗相关问题 更多 >
编程相关推荐