举个例子说明python的__init__
时间: 2023-07-08 22:49:37 浏览: 62
好的,以下是一个简单的例子,演示如何使用 `__init__` 方法初始化 Python 类的属性:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person('Alice', 25)
print(person.name) # 输出:Alice
print(person.age) # 输出:25
```
上述代码定义了一个 `Person` 类,使用 `__init__` 方法初始化了 `name` 和 `age` 两个属性。在创建 `Person` 对象时,需要传递 `name` 和 `age` 两个参数,这些参数会被传递给 `__init__` 方法,从而初始化 `name` 和 `age` 两个属性。
接着,我们创建了一个 `person` 对象,并分别输出了 `name` 和 `age` 两个属性的值。可以看到,输出结果分别为 `Alice` 和 `25`,说明 `__init__` 方法成功初始化了 `name` 和 `age` 两个属性。
相关问题
python __init__继承
在Python中,继承父类的`__init__()`方法有两种常用的方式。第一种方式是使用`super().__init__()`来继承父类的`__init__()`方法,同时也可以使用`super()`继承其他方法。这种方式适用于单继承和多继承的情况。
第二种方式是使用`父类.父类方法(self, 参数)`的方式来继承父类的`__init__()`方法。这种方式在多继承的情况下会有明显的差异[2]。在多继承的情况下,使用`super(子类, self).__init__()`会按照方法解析顺序(MRO)调用父类的方法,而使用`父类.父类方法(self, 参数)`会按照定义顺序依次调用父类的方法。
举个例子来说明。假设有以下类的继承关系:
```python
class A:
def __init__(self):
print("[开始 访问A")
print("[结束 访问A")
class B(A):
def __init__(self):
print("[开始 访问B")
A.__init__(self)
print("[结束 访问B")
class C(A):
def __init__(self):
print("[开始 访问C")
A.__init__(self)
print("[结束 访问C")
class D(A):
def __init__(self):
print("[开始 访问D")
A.__init__(self)
print("[结束 访问D")
class E(B, C, D):
def __init__(self):
print("[开始 访问E")
B.__init__(self)
C.__init__(self)
D.__init__(self)
print("[结束 访问E")
# 实例化类E
e = E()
```
使用第一种方式`super(子类, self).__init__()`,输出结果为:
```
访问E
访问B
访问C
访问D
访问A
访问A
访问D
访问C
访问B
访问E
```
而使用第二种方式`父类.父类方法(self, 参数)`,输出结果为:
```
访问E
访问B
访问C
访问D
访问A
访问A
访问D
访问C
访问B
访问E
```
可以看出,使用第一种方式时,方法的调用顺序按照MRO从左到右的顺序进行;而使用第二种方式时,方法的调用顺序按照定义顺序从左到右依次进行。
python__init__()
`__init__()` 是 Python 中的一个特殊方法,用于在创建对象时进行初始化操作。它会在对象创建后立即调用,并且可以接受参数来设置对象的属性。
下面是一个简单的例子:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Alice", 25)
print(person.name) # 输出 "Alice"
print(person.age) # 输出 25
```
在上面的例子中,我们定义了一个 `Person` 类,并在 `__init__()` 方法中接受了两个参数 `name` 和 `age`,然后将它们分别赋值给了对象的属性 `self.name` 和 `self.age`。