Python 关于类和init方法

Python 关于类和init方法,python,Python,我几天前刚刚开始编写代码,在OOP和类部分遇到了一些麻烦。我们是否总是需要\uuuu init\uuu方法?如果没有,我们什么时候不需要 不,你不是被迫写的。 当您在初始化时实际设置变量及其值时,只需要一个 也就是说,在99%的时间里,您希望设置传递给您的变量,或者甚至设置一些默认值 class A(object): pass class B(object): def __init__(self, foo): self.foo = foo someA = A(

我几天前刚刚开始编写代码,在OOP和类部分遇到了一些麻烦。我们是否总是需要
\uuuu init\uuu
方法?如果没有,我们什么时候不需要

不,你不是被迫写的。 当您在初始化时实际设置变量及其值时,只需要一个

也就是说,在99%的时间里,您希望设置传递给您的变量,或者甚至设置一些默认值

class A(object):
    pass

class B(object):
    def __init__(self, foo):
        self.foo = foo

someA = A() #creates an object of type A, with no custom variables or methods
someB = B('bar') #creates an object of type B, in which foo is set

注意,从对象继承称为新样式类,应该这样做。这不是强制性的…

很好的解释。但有一点需要注意:在Python3中,即使您没有继承自
对象
,您仍然会得到一个新样式的类。另外,可能值得指出的是,(在一个新样式的类中)如果您没有编写
\uuu init\uuuuu
,您仍然有一个继承自
对象的类,并且它什么都不做,但您仍然可以看到它,调用它,等等。