一、初识类
1.在面向对象编程中,编写现实社会中的类,并基于类来创建一系列对象。根据类创建的对象称为实例化。
2.例如:人是一个类,具体的某个人就是一个对象。
3.python中,使用关键字**class**来定义类,类名首字母一般大写。
二、创建和使用类
代码示例1:创建一个Person类
class Person:
def __init__(self,name,age): #__init__()为一个特殊方法,类中的函数称为方法。
#初始化姓名和年龄
self.name=name #python调用方法创建实例Person时,自动传入实参self
self.age=age #可以通过实例访问变量属性
def get_name(self): #self可提供类中的所有方法使用,可通过任何类实例方法
print("欢迎光临:",self.name)
def get_age(self):
print("年龄:",self.age)
person=Person('刘德华',18) #类调用__init__方法
person.get_name()
person.get_age()
========================== RESTART: D:/py基础代码/3.30.py ==========================
欢迎光临: 刘德华
年龄: 18
代码示例2:使用类和实例
class Car: #创建一个汽车类
def __init__(self,name,model,address):
self.name=name
self.model=model
self.address=address
def car_message(self):
message=("\n名称:{}".format(self.name)+"\n型号:{}".format(self.model)
+"\n产地:{}".format(self.address))
#format用法:格式化输出,替换传统的%方法
return message
def update_model(self,model): #定义一个修改model参数的方法
self.model=model
my_car=Car('toyoto','carola','korea')
my_car.update_model('civic')
print(my_car.car_message())
========================== RESTART: D:/py基础代码/3.30.py ==========================
名称:toyoto
型号:civic
产地:korea
三、类的继承
- 编写类时,如果要编写的类是另一个现成类的特殊版本,可以使用继承。
- 一个类继承另一个类时,将自动获取另一个类的所有属性和方法。
- 原有的类称为父类,新类称为子类,子类继承了父类的所有属性和方法。
代码示例1:给子类定义属性和方法
注:子类的__init__()方法,在既有类的基础上编写新类通常调用父类的__init__方法。
class Car: #创建一个汽车类
def __init__(self,name,model,address):
self.name=name
self.model=model
self.address=address
def car_message(self):
message=("\n名称:{}".format(self.name)+"\n型号:{}".format(self.model)
+"\n产地:{}".format(self.address))
#format用法:格式化输出,替换传统的%方法
return message
def update_model(self,model): #定义一个修改model参数的方法
self.model=model
my_car=Car('toyoto','carola','korea')
my_car.update_model('civic')
print(my_car.car_message())
class ChinaCar(Car): #创建一个国产汽车,继承父类Car
def __init__(self,name,model,address): #初始化父类的属性
super().__init__(name,model,address)
#super()是一个特殊的方法,能够调用父类。因为父类也称超类,super由此而来。
my_car=ChinaCar("哈弗","h7","中国")
print(my_car.car_message())
========================== RESTART: D:/py基础代码/3.30.py ==========================
名称:toyoto
型号:civic
产地:korea
名称:哈弗
型号:h7
产地:中国
代码示例2:给子类定义新的属性和方法
class Car: #创建一个汽车类
def __init__(self,name,model,address):
self.name=name
self.model=model
self.address=address
def car_message(self):
message=("\n名称:{}".format(self.name)+"\n型号:{}".format(self.model)
+"\n产地:{}".format(self.address))
#format用法:格式化输出,替换传统的%方法
return message
def update_model(self,model): #定义一个修改model参数的方法
self.model=model
my_car=Car('toyoto','carola','korea')
my_car.update_model('civic')
print(my_car.car_message())
class ChinaCar(Car): #创建一个国产汽车,继承父类Car
def __init__(self,name,model,address): #初始化父类的属性
super().__init__(name,model,address)
#super()是一个特殊的方法,能够调用父类。因为父类也称超类,super由此而来。
self.type="SUV" #给新的方法属性赋值
def insert_type(self): #定义一个新的方法
return "型号:{}".format(self.type)
my_car=ChinaCar("哈弗","h7","中国")
print(my_car.car_message())
print(my_car.insert_type())
========================== RESTART: D:/py基础代码/3.30.py ==========================
名称:toyoto
型号:civic
产地:korea
名称:哈弗
型号:h7
产地:中国
型号:SUV
四、导入类(import)
1.导入类是一种有效的编程方式,增加代码的可读性,易于维护,提高效率。
代码示例1:简单导入-pi的数值
from math import pi
print(pi)
C:\Users\Lenveno\Envs\csdnlei\Scripts\python.exe C:/Users/Lenveno/PycharmProjects/csdnlei/test.py
3.141592653589793
代码示例2:子类中导入父类
from car import Car
class ChinaCar(Car): #创建一个国产汽车,继承父类Car
def __init__(self,name,model,address): #初始化父类的属性
super().__init__(name,model,address)
#super()是一个特殊的方法,能够调用父类。因为父类也称超类,super由此而来。
self.type="SUV" #给新的方法属性赋值
def insert_type(self): #定义一个新的方法
return "型号:{}".format(self.type)
my_car=ChinaCar("哈弗","h7","中国")
print(my_car.car_message())
print(my_car.insert_type())
C:\Users\Lenveno\Envs\csdnlei\Scripts\python.exe C:/Users/Lenveno/PycharmProjects/csdnlei/chinacar.py
名称:toyoto
型号:civic
产地:korea
名称:哈弗
型号:h7
产地:中国
型号:SUV