python面对对象
时间: 2023-07-02 15:10:58 浏览: 51
Python是一种面向对象的编程语言,它支持面向对象编程的所有常见特性,包括类、封装、继承和多态性。在Python中,面向对象编程的主要构建块是类和对象。
类是一种数据类型,它定义了一组属性和方法,用于描述对象的行为。对象是类的一个实例,它具有类定义的所有属性和方法。通过创建对象,我们可以使用类中定义的方法和属性。
下面是一个简单的Python类的示例:
```
class Car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
def start(self):
print("The car is starting.")
def stop(self):
print("The car is stopping.")
```
在这个例子中,我们定义了一个名为“Car”的类,它有三个属性:制造商(make)、型号(model)和年份(year)。我们还定义了两个方法:start(启动)和stop(停止)。
__init__方法是一个特殊的方法,它在创建类的新实例时调用。在这个例子中,它接受三个参数:make、model和year,并将它们保存为对象的属性。
要创建一个类的实例,我们可以使用以下代码:
```
my_car = Car("Toyota", "Camry", 2021)
```
这将创建一个名为“my_car”的新对象,它是“Car”类的一个实例。我们还可以访问对象的属性和方法:
```
print(my_car.make)
print(my_car.start())
```
这将输出“Toyota”和“The car is starting.”。
继承是面向对象编程中的一个重要概念,它允许我们创建一个新类,它从现有类继承属性和方法。例如,我们可以创建一个名为“ElectricCar”的新类,它从“Car”类继承所有属性和方法,并添加一些新的属性和方法:
```
class ElectricCar(Car):
def __init__(self, make, model, year, battery_size):
super().__init__(make, model, year)
self.battery_size = battery_size
def charge(self):
print("The car is charging.")
```
在这个例子中,我们定义了一个名为“ElectricCar”的新类,它从“Car”类继承了所有属性和方法。我们还定义了一个新方法“charge”,它是“ElectricCar”类特有的。
super()函数是一个特殊的函数,它允许我们调用父类的方法。在这个例子中,我们使用super()函数调用了父类的__init__方法,并把make、model和year传递给它。
现在,我们可以使用以下代码创建一个新的“ElectricCar”对象:
```
my_electric_car = ElectricCar("Tesla", "Model S", 2021, 100)
```
这将创建一个名为“my_electric_car”的新对象,它是“ElectricCar”类的一个实例。我们还可以访问对象的属性和方法:
```
print(my_electric_car.make)
print(my_electric_car.start())
print(my_electric_car.charge())
```
这将输出“Tesla”、“The car is starting.”和“The car is charging.”。
相关推荐
![](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)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)