我正在尝试创建一个在obj1
下创建的对象,即Employee
类本身内部。但是我在这样的对象创建中遇到了错误。
class Employee:
'Common base class for all employees'
empCount = 0
def __init__(self, name, salary):
self.name = name
self.salary = salary
Employee.empCount += 1
def displayCount(self):
print "Total Employee %d" % Employee.empCount
def displayEmployee(self):
print "Name : ", self.name, ", Salary: ", self.salary
obj1 = Employee("Mayank",6000)
答案 0 :(得分:1)
问题看起来很简单。只是取消了onInit()
这一行。创建后,您可以使用obj1 = Employee("Mayank",6000)
将其添加回课程。
额外步骤的原因是通常只是无法在类定义中创建类的实例。否则,您正在调用尚未定义的类。因此,解决方案是使实例在类定义之外,然后在事实之后将其添加回来: - )
答案 1 :(得分:1)
正如@ g.d.d.c所提到的
您不能拥有一个类变量,它是您正在定义的类的实例。当您尝试创建它的实例时,该类不存在。
但是,如果你确实想做这样的事情,这里有一个解决办法:
更改行
obj1 = Employee("Mayank",6000)
到
Employee.obj1 = Employee("Mayank",6000)
注意:但是,我不认为你会想要编写这样的代码。在这种情况下,创建类外部类的对象更有意义。为此,它只会是一条直线。
答案 2 :(得分:0)
嗯,首先,为什么你想在类本身内创建一个对象。您可以取消创建对象的行#obj1',一切都会正常工作。