九、Python类

本文介绍了Python中类的概念,包括如何创建和使用类,如初始化方法`__init__`,以及如何通过实例访问属性和调用方法。还讲解了继承机制,子类如何自动获取父类的属性和方法,并展示了如何定义和使用子类。最后提到了类的编码风格,如驼峰命名法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python学习笔记

参考书目:《Python编程从入门到实践(第2版)》,[美] Eric Matthes,袁国忠译

九、类

1、创建和使用类

1)创建类
class Dog:  # 首字母大写的是类,类中的函数称为方法
    """模拟简单的小狗"""
    
    def __init__(self,name,age):  # __init__()是一个特殊方法,根据Dog类创建实例时会自动运行
        """初始化属性"""
        self.name = name  # 每个与实例相关联的方法调用都自动传递实参self,它是一个指向事例本身的引用
        self.age = age  # 以self为前缀的变量可供类中的所有方法使用。像这样可通过实例访问的变量称为属性
        self.train_year = 0  # 设置初始值
        
    def sit(self):
        """模拟蹲下"""
        print(f"{self.name} is now sitting.")
        
    def roll_over(self):
        """模拟打滚"""
        print(f"{self.name} rolled over!")
        
    def update_training(self,year):
        """将训练年龄设置为指定的值"""
        self.train_year = year
        
    def training(self):
        """打印训练年龄"""
        print(f"The dog has been trained {self.train_year} years. ")
# 创建实例
my_dog = Dog('Willie',6)  
2)访问属性
print(my_dog.name)
my_dog.age

Willie
6

3)调用方法
my_dog.sit()
my_dog.roll_over()

Willie is now sitting.
Willie rolled over!

4)直接修改属性的值
my_dog.train_year = 6
my_dog.training()

The dog has been trained 6 years.

5)通过方法修改属性值
my_dog.update_training(18)
my_dog.training()

The dog has been trained 18 years.

2、继承

原有的类称为父类,新的类称为子类,子类会自动获得父类的所有属性和方法。父类又称超类(superclass)。

1)定义子类
class ElectricDog(Dog):  # 括号内指定父类名称
    """电子狗"""
    
    def __init__(self,name,age):  # 接受创建父类实例所需要的信息
        """
        初始化父类的属性
        再初始化电子狗特有属性
        """
        super().__init__(name,age)  # 调用父类的方法__init__(),让子类实例包含这个方法中的所有属性
        self.battery_size = 20
    
    def describe_battery(self):
        print(f"This dog has a {self.battery_size}-Wh battery.")
        
my_edog = ElectricDog('Lucy',8)
my_edog.describe_battery()

This dog has a 20-Wh battery.

3、类编码风格

类名应采用驼峰命名法,即此类名中的每个单词的首字母都大写,而不使用下划线。实例名和模块名都采用小写格式,并在单词间加上下划线。

在类中,可使用一个空行来分隔方法,而在模块中,可使用两个空行来分隔类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值