我需要在构造函数中返回一个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
,我怎么能返回一个实例?
答案 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()