python基础(六)、类的创建和调用方式
发布日期:2021-05-20 07:49:59 浏览次数:20 分类:精选文章

本文共 3397 字,大约阅读时间需要 11 分钟。

如何创建与使用Python类

在编程中,类是最强大的工具之一。通过定义类,我们可以将复杂的实物抽象为一系列属性和方法,从而模拟现实世界中的对象。在Python中,类的使用可以让我们的程序变得更直观、更高效。


一、创建类

1.1 类的基石

类的核心是通过class语句定义,像这样:

class Dog:
"""模拟一个小狗的简单尝试"""
def __init__(self, name, age):
"""类初始化方法"""
self.name = name
self.age = age
def sit(self):
"""小狗蹲下"""
print(f"{self.name.title()} is now sitting.")
def roll_over(self):
"""小狗打滚"""
print(f"{self.name.title()} rolled over!")
  • __init__方法:这是一个特殊方法,用于初始化新实例时执行。每当我们使用Dog类创建新实例时,Python都会自动调用__init__方法。
  • 属性:即实例可以访问的变量,如self.nameself.age
  • 方法:即可以通过实例调用的一系列操作,如sit()roll_over()

1.2 创建实例

my_dog = Dog('Willie', 6)
# 访问属性
print(f"My dog's name is {my_dog.name.title()}.")
print(f"My dog is {my_dog.age} years old.")
# 调用方法
my_dog.sit() # 输出: "Willie is now sitting."
my_dog.roll_over() # 输出: "Willie rolled over!"
  • 实例化:使用Dog类创建小狗实例my_dog
  • 属性访问:通过.符号访问实例中的属性。
  • 方法调用:通过.符号调用实例中的方法。

二、类与实例的使用

类的真正作用在于定义实物的行为和属性。通过实例化,我们可以获得具体的实例。比如,两个狗可以各自拥有不同的属性和行为:

my_dog = Dog('Willie', 6)
your_dog = Dog('Lucy', 3)
print(my_dog.name.title()) # 输出: "Willie"
print(your_dog.age) # 输出: 3
# 调用方法
my_dog.sit()
your_dog.sit() # 输出: "Lucy is now sitting."

三、类的继承

3.1 子类与父类

当我们需要为现有的类增加新的功能时,继承是最好的选择。例如,扩展一个默认的Car类,创建一个专门用于电动汽车的ElectricCar类:

class Car:
"""一个通用的汽车类"""
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
"""返回汽车的详细描述"""
return f"{self.year} {self.make} {self.model}"
class ElectricCar(Car):
"""电动汽车的具体实现"""
def __init__(self, make, model, year):
super().__init__(make, model, year)
self.battery = Battery()
def charge(self):
"""电动汽车充电"""
print("This is an electric car. Charge it now!")
  • 继承语法class ElectricCar(Car): 表示ElectricCar继承自Car
  • **super()``函数**:用于调用父类的init`方法。
  • 子类特性ElectricCar实例包含一个Battery实例。

四、模块导入

将类组织到模块中,可以让代码更干净。例如,car.py模块包含所有与汽车相关的类:

"""一个汽车相关的模块"""
class Car:
"""汽车的基础类"""
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
"""返回汽车的详细描述"""
return f"{self.year} {self.make} {self.model}"
class Battery:
"""汽车电池类"""
def __init__(self, battery_size=70):
self.battery_size = battery_size
def describe_battery(self):
"""描述电池容量"""
print(f"This car has a {self.battery_size}-kWh battery.")
class ElectricCar(Car):
"""电动汽车类"""
def __init__(self, make, model, year):
super().__init__(make, model, year)
self.battery = Battery()
def charge(self):
"""电动汽车充电"""
print("This is an electric car. Charge it now!")
  • 导入方式
  • 单个类导入:
    from car import Car
  • 导入多个类:
    from car import Car, ElectricCar, Battery
  • 导入模块内容:
    import car

五、Python 标准库

Python 标准库为你提供了丰富的工具。例如,collections.OrderedDict 让你创建有序字典:

from collections import OrderedDict
# 创建有序字典
favorite_languages = OrderedDict()
favorite_languages['jen'] = 'python'
favorite_languages['sarah'] = 'c'
favorite_languages['edward'] = 'ruby'
favorite_languages['phil'] = 'python'
# 遍历字典
for name, language in favorite_languages.items():
print(f"{name.title()}'s favorite language is {language}.")

六、总结

通过类,你可以将复杂的逻辑封装到模块中,模块化代码让项目更易维护。继承则让你可以共享现有类的功能,节省开发时间。学会合理使用模块和标准库,将你的代码变得更高效、更专业。

上一篇:python基础(七)、文件和异常
下一篇:python基础(五)、函数创建和调用方式

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月02日 11时49分51秒