def __init__(self):啥意思
时间: 2023-07-30 18:11:14 浏览: 107
`def __init__(self):` 是一个特殊的方法,称为构造函数(constructor)。在Python中,当创建一个类的实例时,构造函数会被自动调用。
构造函数的作用是在对象被创建时初始化对象的属性。`self` 参数表示类的实例本身,通过它可以访问和操作类的属性和方法。
在构造函数中,你可以为类的实例设置默认的属性值,或者执行一些初始化操作。例如,你可以在构造函数中为对象的属性赋初值,或者打开一些资源或者连接数据库等。
以下是一个简单的示例:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person1 = Person("Alice", 25)
print(person1.name) # 输出: Alice
print(person1.age) # 输出: 25
```
在上面的例子中,`Person` 类的构造函数接受两个参数 `name` 和 `age`,并将它们赋值给 `self.name` 和 `self.age` 属性。创建 `Person` 类的实例时,会自动调用构造函数,并将传入的参数赋值给相应的属性。
相关问题
class Master1(object): def __init__(self): self.a = 100 class Master2(object): def __init__(self): self.b = 200 class Sub(Master1,Master2): def __init__(self): pass def show(self):
这是一个 Python 的类继承的示例,Sub 类继承了 Master1 和 Master2 两个类的属性和方法,但是在自己的 __init__ 方法中没有做任何事情,因此 show 方法也没有实现。如果需要使用 Sub 类,可以在其实例化时传入必要的参数,并在其方法中实现相应的逻辑。
写出下列程序的运行结果:class A: def__new__(self): self.__init__(self) print("A's__new__()invoked") def__init__(self): print("A's__init__()invoked") class B(A): def__new__(self): print("B's__new__()invoked") def__init__(self): print("B's__init__()invoked") def main(): b=B() a=A() main()
这段程序存在语法错误,正确的写法应该是:
```python
class A:
def __new__(self):
self.__init__()
print("A's __new__() invoked")
def __init__(self):
print("A's __init__() invoked")
class B(A):
def __new__(self):
print("B's __new__() invoked")
def __init__(self):
print("B's __init__() invoked")
def main():
b = B()
a = A()
main()
```
程序的运行结果是:
```
B's __new__() invoked
B's __init__() invoked
A's __new__() invoked
A's __init__() invoked
```
首先创建了一个 `B` 类的实例 `b`,调用了 `B` 类的 `__new__()` 方法和 `__init__()` 方法。`B` 类的 `__new__()` 方法仅仅打印了一句话,`B` 类的 `__init__()` 方法打印了一句话。
接着创建了一个 `A` 类的实例 `a`,调用了 `A` 类的 `__new__()` 方法和 `__init__()` 方法。`A` 类的 `__new__()` 方法调用了 `__init__()` 方法,打印了一句话,然后自己打印了一句话。
因此,程序的输出结果是:
```
B's __new__() invoked
B's __init__() invoked
A's __new__() invoked
A's __init__() invoked
```
阅读全文