从构造函数返回类的实例

时间:2011-10-24 04:18:16

标签: python instance

我需要在构造函数中返回一个Bike实例。例如:

class Bike(object):
    def __init__(self,color):
        self.bikeColor = color
        return self #It should return an instance of the class; is this not right?

myBike = Bike("blue")

当我执行上述操作时,出现以下错误:

TypeError: __init__() should return None, not 'Bike'

如果是这种情况,如果只假设为return None,我怎么能返回一个实例?

2 个答案:

答案 0 :(得分:4)

class Bike(object):
    def __init__(self, color):
        self.bikeColor = color

myBike = Bike("blue")

够了。在Python中,__init__实际上不是构造函数 - 它是初始化程序。它接受一个已构造的对象并对其进行初始化(例如,设置其bikeColor属性。

Python在语义上也更接近构造函数 - __new__方法。您可以在线阅读(here is a good SO discussion),但我怀疑您此时并不需要它。

答案 1 :(得分:0)

很可能你想出这样的东西。你想在哪里返回一个构造函数。在这种情况下,您可以使用单独的方法来执行此操作。例如,

class A:
 def __init__(self):
  self.data = []
 def newObj(self):
  return A()