class如何重复使用
时间: 2023-10-18 09:07:52 浏览: 22
在 Python 中,class 可以通过继承来重复使用。继承是一种面向对象编程的基本概念,它允许我们定义一个新的 class 并从现有的 class 中继承属性和方法。
假设我们有一个名为 Animal 的 class,它有一些属性和方法,现在我们想要创建一个新的 class,叫做 Dog,它应该继承 Animal 的属性和方法。我们可以这样做:
```python
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def speak(self):
print("I am an animal.")
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
def speak(self):
print("I am a dog. Woof!")
```
在上面的代码中,我们创建了两个 class,Animal 和 Dog。Dog 继承了 Animal 的属性和方法。当我们创建一个 Dog 对象时,它将自动继承 Animal 中定义的所有属性和方法。
我们可以使用 super() 函数来调用父类的方法,这样可以使我们的代码更加简洁易读。
现在,我们可以创建一个 Dog 对象并调用它的方法:
```python
my_dog = Dog("Buddy", 3, "Golden Retriever")
print(my_dog.name) # 输出 "Buddy"
print(my_dog.age) # 输出 3
print(my_dog.breed) # 输出 "Golden Retriever"
my_dog.speak() # 输出 "I am a dog. Woof!"
```
在上面的代码中,我们创建了一个名为 my_dog 的 Dog 对象,并使用它的属性和方法。注意,即使 Dog 重写了 Animal 的 speak() 方法,我们仍然可以使用 my_dog.speak() 来调用它的方法,但输出将会是 "I am a dog. Woof!",而不是 "I am an animal."。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![ZIP](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)