如何在同一个python类中创建对象

时间:2015-06-29 05:13:28

标签: python

我正在尝试创建一个在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)

3 个答案:

答案 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',一切都会正常工作。