Python笔记 -- 类

news2024/11/27 0:28:43

文章目录

    • 1、引入
    • 2、操作属性
    • 3、继承
    • 4、将实例用作属性
    • 5、导入类

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编程 从入门到实践》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/402833.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

兔c同学的一篇:使用python 的 unittest模块对类和函数进行测试

文章目录1. 测试函数简单的函数测试单元测试和测试用例可通过的测试不可通过的测试测试未通过时怎么办2. 测试类各种断言方法测试一个类测试 AnonymousSurvey方法setUp()导言 在编写函数或类时,还可为其编写测试。通过测试,可以确定代码面对各种输入都能…

面试官必问--谈谈Spring Bean对象的生命周期吧

现在是时候讨论Spring Bean从产生到销毁整个过程的细节了,也就是Spring Bean的生命周期。在这里文哥先温馨提示:Spring Bean的生命周期是面试高频点之一,希望大家好好掌握哦~一. Spring Bean生命周期的概述如果没有Spring的环境,J…

张力控制之开环模式

张力控制的相关知识也可以参看专栏的其它文章,链接如下: 张力闭环控制之传感器篇(精密调节气阀应用)_RXXW_Dor的博客-CSDN博客跳舞轮对应张力调节范围,我们可以通过改变气缸的气压方式间接改变,张力跳舞轮在收放卷闭环控制上的详细应用,可以参看下面的文章链接,这里我…

人工智能实验一:利用遗传算法求解 TSP(旅行商)问题

1.任务描述 本关任务:利用遗传算法求解 TSP 问题。 2.相关知识 为了完成本关任务,你需要掌握:1. 遗传算法;2. TSP问题。 遗传算法 一个后继状态由两个父状态决定,以k个随机产生的状态开始(population&…

Kaggle赛题解析:Diffusion Prompt生成

文章目录一、比赛信息二、比赛背景三、比赛任务四、评价指标五、数据描述六、解题思路一、比赛信息 比赛名称:Stable Diffusion - Image to Prompts 推断生成高度详细、清晰的焦点、插图、宏伟、史诗般的 3d 渲染图像的prompt 比赛链接:https://www.k…

python----获取一部小说

1、需求说明 获取一部小说的标题内容,以txt文档形式保存 2、项目说明 3、代码 # 怎么发送请求 # pip install requests import requests# pip install lxml->从标签里提起文字 #from lxml import etree from lxml import html etreehtml.etree # 发送给谁 url…

Android---系统启动流程

目录 Android 系统启动流程 init 进程分析 init.rc 解析 Zygote 概叙 Zygote 触发过程 Zygote 启动过程 什么时Runtime? System Server 启动流程 Fork 函数 总结 面试题 Android 是 google 公司开发的一款基于 Linux 的开源操作系统。 Android 系统启动…

Web3中文|一波未平一波又起:Silvergate将走向何处

Silvergate Capital(SI)这一加密公司曾经的重要银行合作伙伴,现在正处于崩溃的边缘。这家总部位于加州拉荷亚的公司上周五晚上表示,其暂停了Silvergate交易所网络(SEN:Silvergate Exchange Network&#xf…

Foxit PDF SDK ActiveX 5.9.7 Crack

Foxit PDF SDK ActiveX对于刚接触PDF或不愿投入过多精力学习PDF技术的产品管理者及开发者来说,Foxit PDF SDK ActiveX无疑是理想的选择。破解版它拥有操作简单的特性,提供可支持定制的可视化编程组件,开发者通过简单的拖放动作,就…

扬帆配资|建筑业景气度持续回升,多只概念股业绩有望增长

新式城镇化概念股遭到商场重视。 今天早盘,新式城镇化概念股冲高,恒锋信息、ST花王涨停。蕾奥规划、筑博规划一度冲高至15%,冠龙节能、杭州园林、美晨生态跟涨。 国家出台一系列城镇化相关方针 城镇化,是人口向城镇会集的进程。…

【Kubernetes】第二十三篇 - 布署 nodejs 后端项目(上)

一,前言 上一篇,介绍了 MySQL 服务的部署; 本篇,介绍 nodejs 后端项目的布署(将后端项目构建成为 docker 镜像,并推送至镜像仓库); 二,准备项目 创建后端项目&#xf…

8、LSM树

一、前言 最近在调研NoSQL数据库,发现RocksDB、LevelDB、HBase以及Prometheus等,其底层的存储引擎都是基于LSM树,于是决定花时间彻底吃透LSM树这一数据结构。 不幸的是,在查阅资料学习的过程中,发现网上各种文章汗牛…

浅谈对Promise的理解以及在工作中的应用

浅谈对Promise的理解以及在工作中的应用Promise的概念背景知识JavaScript的同步和异步JavaScript事件循环回调函数进行异步操作解决方案:PromisePromise 在工作中的运用创建PromisePromise封装AJAXPromise链式操作Promise.all()Promise.race()async和await总结Promi…

轻松转换文档:antennahouse/Office Server Document Converter

关于 Office Server 文档转换器 (OSDC)破解版 无需 Microsoft Office 或 Adob​​e 软件即可快速准确地转换文档。 Office Server 文档转换器 (OSDC) 会将您在 Microsoft Office(Word、Excel、PowerPoint)中创建的重要文档转换为高质量的 PDF 或图像格式…

国内32位MCU在电机控制上的应用方案

电机(Electric machinery,俗称“马达”)是依据电磁感应定律,实现电能转换或传递的一种电磁装置,其主要作用是产生驱动转矩,为用电器或各类机械提供动力。电机作为工业世界的动力之源,几乎用于所…

ThinkPHP 6.1 模板篇之布局与继承

本文主要讲述ThinkPHP 6.1版本模板几种布局的方法和如何实现继承, 可以与《ThinkPHP 6.1 模板篇之文件加载》结合来看。 模板布局 布局方式有两种可以实现。 布局方法1 开启配置 默认情况下,不支持模版布局功能,需要在配置文件中开启&…

如何快速通过PMP考试?

我建议准备的最短时间至少一个月,我用了一个半月,我每天集中精力备考大约4个小时,大家可以根据自己的专注力的长短去调节每天的备考时间。 准备5月的,还没备考的,现在开始也来得及。5月没有报名的可以准备8月的&#…

【Linux系统编程】05:多进程

多进程 OVERVIEW多进程一、进程创建1.创建1个子进程2.创建多个子进程二、进程控制1.进程结束2.进程等待3.子进程操作14.子进程操作2三、进程体系1.守护进程2.进程调度程序:一种已经编译好的、存在磁盘中的二进制文件(脚本为普通文件)。进程&a…

超图iServer扩展开发记录Restlet 3

HTTP 请求在达到 REST 应用对象,交给资源实现类处理的时候,先要解析 HTTP 请求中的参数,然后才会进入业务逻辑进行处理。参数解析的工作由参数解析器(Decoder)进行,即可以实现将请求参数转换为 Java 对象。…

qt tcp通讯

TCP 协议(Transmission Control Protocol)全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。tcp服务端使用QTcpServer、QTcpSocket。tcp客户端使用QTcpSocket1.在工程文件(工程文件.pro)中的第一行添加network 如QT core gui …