Python笔记 -- 类

1、引入

  • 类和实例
    使用可以模拟任何东西,下面是一个小狗的简单类Dog,它表示任意小狗,实例my_dog表示一个具体的小狗
  • 方法
    类中的函数称为方法,有关函数的一切均适用于方法
    __init__是一个特殊的方法,根据类创建实例时,会自动运行
  • 形参self
    必不可少,且必须位于其他参数的前面
    创建实例时会自动传递实参self
    以self为前缀的变量可供类中的所有方法使用
    以self为前缀的变量可被类的任何实例访问
  • 属性
    name和age是my_dog的属性
# 创建类
class Dog:

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def cmd_sit(self):
        print(f'{self.name} is now sitting')

    def cmd_move(self, distance):
        print(f'{self.name} will move '
              f'forward {distance} meters')


# 创建实例
my_dog = Dog('Wille', 3)
# 访问属性
print(my_dog.name + ',' + str(my_dog.age))
# 调用方法
my_dog.cmd_sit()
my_dog.cmd_move(2)

在这里插入图片描述

2、操作属性

# 创建类
class Dog:

    def __init__(self, name, color):
        self.name = name
        self.color = color
        self.age = 2  # 给属性指定默认值

    def print_info(self):
        print(self.name, end=',')
        print(self.color, end=',')
        print(self.age)

    def grow_up(self, age):
        """ 通过方法修改属性值 """
        self.age += age


my_dog = Dog('cinnamon', 'brown')
my_dog.print_info()

my_dog.grow_up(2)
my_dog.print_info()

# 直接修改属性值
my_dog.age = 5
my_dog.print_info()

在这里插入图片描述

3、继承

一个类继承另一个类,原有的称为父类,新类称为子类
子类继承父类的所有属性和方法
子类可定义自己的属性和方法
子类可重写父类方法

class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        self.mileage = 0  # 里程数

    def print_success(self):
        print('Successfully created')

    def print_info(self):
        make = self.make
        model = self.model
        year = self.year
        print(f"{year} {make} {model}")


class ElectricCar(Car):
    """电动汽车"""

    def __init__(self, make, model, year, battery_size):
        # 继承父类的属性
        super().__init__(make, model, year)
        # 定义新的属性
        self.battery_size = battery_size

    def print_info(self):
        """ 重写父类方法 """
        make = self.make
        model = self.model
        year = self.year
        battery_size = self.battery_size
        print(f"{year} {make} {model} {battery_size}KWh")


my_byd = ElectricCar('BYD', 'TangEV', 2022, 108.8)
my_byd.print_success() # 调用父类方法
my_byd.print_info()

在这里插入图片描述

4、将实例用作属性

class Battery:
    def __init__(self, size):
        self.size = size

    def print_endurance(self):
        endurance = self.size * 6
        print(f"This car has a range of {endurance}km")


class ElectricCar:

    def __init__(self, make, model, battery):
        self.make = make
        self.model = model
        # 将实例用作属性
        self.battery = Battery(battery)

    def print_info(self):
        make = self.make
        model = self.model
        battery = self.battery.size
        print(f"{make} {model} {battery}KWh")


my_byd = ElectricCar('BYD', 'TangEV',108.8)
my_byd.print_info()
my_byd.battery.print_endurance()

在这里插入图片描述

5、导入类

  • 导入单个类

from 模块名 import 类名

  • 导入多个类

from 模块名 import 类名1, 类名2 #

  • 导入所有类

from 模块名 import *

  • 导入整个模块

import 模块名
使用时: 模块名.类名

笔记来源:《Python编程 从入门到实践》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值