news 2026/4/26 16:52:04

Python语法进阶笔记(一)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python语法进阶笔记(一)

一、面向对象

  1. 概念:

  • 面向过程:就是先分析出解决问题的步骤,再把步骤拆成一个个方法,是没有对象去调用的,通过一个个方法的执行解决问题。

  • 面向对象:就是将编程当成是一个事物 (对象), 对外界来说,事物是直接使用的,不用去管内部的情况,而编程就是设置事物能做什么事情。

  • 二者区别:

    面向过程 (手洗): 需要实现一个功能的时候,着重的是过程,分析出一个个步骤,并把一个个步骤用一个个函数实现,再依次去调用一个个函数即可 (每一个步骤都需要自己亲历亲为)

    面向对象 (机洗): 需要实现一个功能的时候,着重的是谁去帮我做这件事情 (偷懒,找别人帮我做)

二、类

  1. 概念:对一系列具有相同属性和行为的事物的统称,是一个抽象的概念,不是真实存在的事物。

  2. 基本格式:

    class 类名

    代码块

  3. 注意:类名要符合标识符规定,同时遵循大驼峰命名法,见名知意。

  4. 三要素:

    1. 类名

    2. 属性:对象的特征描述,用来说明是什么样子的

    3. 方法:对象具有的功能(行为),用来说明能够做什么

    4. 举例:

      类名:人类

      属性:身高、体重、年龄

      方法:走路、说话、学习

三、对象

  1. 概念:类的具体表现,是面向对象编程的核心

  2. 实例化 (创建) 对象的格式:

    对象名 = 类名 ()

  3. 注意:

    1. 先有类,再有对象

    2. 类只有一个,对象可以有很多个

四、实例化举例:

  1. 定义一个类:类名必须符号命名规则,同时遵循大驼峰命名法,见名知义

  2. 查看类属性:类名.属性名

  3. 新增/修改类属性:类名.属性名 = 属性值

  4. 删除类属性:del 类名.属性名

  5. 创建对象:创建对象的过程也叫实例化对象------>对象名 = 类名()

  6. 实例方法:由对象调用,至少有一个self参数,执行实例方法的时候,自动将调用该方法的对象赋值给self参数

    • self参数是类中的实例方法必须具备的

    • self表示当前对象,self.属性名表示当前对象中的属性

    • self 代表对象本身,当对象调用实例方法时,python 会自动将对象本身的引用作为参数,传递到实例方法的第一个参数 self 里面

  7. 实例属性:self.name

class Person: # 类名必须符号命名规则,同时遵循大驼峰命名法,见名知义 name = '张三' age = 18 def eat(self): print('吃吃吃') print(self.name) print(self.age) #查看类属性: 类名.属性名 print(Person.name) # 新增类属性:类名.属性名 = 属性值 Person.sex = '男' print(Person.sex) # 修改类属性:类名.属性名 = 属性值 Person.name = '王五' print(Person.name) # 删除类属性:del 类名.属性名 del Person.sex #创建对象:类名() #创建对象的过程也叫实例化对象 #实例化对象基本格式:对象名 = 类名() p1 = Person() # 第一次实例化 print(p1) # <__main__.Person object at 0x0000020EA0EA0E80> 内存地址 p2= Person() # 第二次实例化 print(p2) # <__main__.Person object at 0x0000020EA0EA0EA80> 内存地址不一样,说明是两个不同对象,可以实例化多个对象 print(p1.name) print(p1.age) p1.eat()
class Person: name = '张三' def introduce(self): print('我是实例方法') print(f"{Person.name}的年龄是{self.age}岁") #self.age 表示实例属性 Person.name 表示类属性 pe = Person() pe.age = 18 # 新增实例属性,其他对象是没有这个属性的 pe2 =Person() pe2.age = 20 print(pe2.age) # 20 pe.age=18 是给pe对象新增的实例属性 pe.introduce()
  1. 实例属性和类属性的区别:

    类属性属于类,是公共的,大家都能访问到

    实例属性属于对象的,是私有的,只能由对象名访问,不能由类名访问

    访问类属性,类可以访问到,实例对象也可以访问到

五、构造函数 :__ init__()

  1. 作用:通常用来做属性初始化或者赋值操作

  2. 格式:def __ init__(self,参数列表):

  3. 注意:在类实例化对象的时候,构造函数会自动调用

class Person: def __init__(self,name,age,height): self.name = name self.age = age self.hight = height def play(self): print(f"{self.name}正在玩") def introduce(self): print(f"{self.name}的年龄是{self.age}岁,身高是{self.hight}cm") # 创建对象,第一次实例化对象 p1 = Person('张三',18,180) p1.introduce() # 调用方法 p1.play() # 创建对象,第二次实例化对象 p2 = Person('王五',20,185) p2.introduce() p2.play() # 输出: # 张三的年龄是18岁,身高是180cm # 张三正在玩 # 王五的年龄是20岁,身高是185cm # 王五正在玩

六、析构函数:__ del__()

  1. 含义:析构方法__del__()是对象在被垃圾回收的时候起作用的一个方法,他的执行一般也就意味着对象不能够继续引用,回收内存。

  2. 作用:通常用来做资源清理操作

  3. 格式:def __ del__(self):

  4. 注意:

    对象销毁的时候,解释器会默认调用__del__()方法

    正常运行时,不会调用__del__()方法,对象执行结束后,系统会默认调用__del__()方法

    __ del__()主要是表示该程序块或者函数以及全部执行结束

class Person: def __init__(self): print('我是__init__()') def __del__(self): print('我是__del__(),被销毁了') p= Person() print("这是最后第二行") print("这是最后一行") # 我是__init__() # 这是最后第二行 # 这是最后一行 # 我是__del__(),被销毁了
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 20:21:01

零基础玩转EtherCAT:从接线到第一个控制程序

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个EtherCAT入门教程项目&#xff0c;包含&#xff1a;1.硬件接线示意图 2.基础网络配置向导 3.第一个LED控制示例 4.从站设备扫描demo 5.简单运动控制练习。要求&#xff1a…

作者头像 李华
网站建设 2026/4/21 20:39:43

Windows 安装 Git 教程

下载 https://git-scm.com/install/windows 下载好后双击安装包 选择组件&#xff08;Select Components&#xff09; 这个界面是让你决定&#xff1a;你要在 Windows 系统里植入哪些 Git 的便利功能&#xff1f; 默认选择挺好的&#xff0c;可以直接点下一步 Additional i…

作者头像 李华
网站建设 2026/4/19 20:59:58

TortoiseSVN在游戏开发中的实际应用案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个游戏项目管理工具&#xff0c;整合TortoiseSVN版本控制功能。要求能够特别处理大型二进制文件&#xff08;如美术资源&#xff09;&#xff0c;实现增量更新和锁定机制。包…

作者头像 李华
网站建设 2026/4/21 19:51:00

华为OD刷题效率翻倍:这些工具你该知道

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 设计一个华为OD效率提升工具包&#xff0c;包含&#xff1a;1. 题目分类统计和进度追踪&#xff1b;2. 个性化刷题推荐系统&#xff1b;3. 代码片段管理库&#xff1b;4. 自动化测…

作者头像 李华
网站建设 2026/4/20 1:41:55

PCB Layout中电源布线规范:实战案例解析去耦电容布局

电源完整性实战&#xff1a;去耦电容布局的“黄金法则”与真实翻车案例你有没有遇到过这样的场景&#xff1f;一块板子原理图看起来毫无破绽&#xff0c;所有电源都加了电容&#xff0c;BOM清单也列得整整齐齐。可一上电&#xff0c;MCU莫名其妙复位&#xff1b;电机一启动&…

作者头像 李华
网站建设 2026/4/22 11:07:30

LAYUI vs 传统开发:效率提升300%的秘诀

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个对比DEMO&#xff0c;展示使用LAYUI框架和原生开发实现相同后台管理界面的效率差异。要求&#xff1a;1.左侧菜单栏&#xff1b;2.数据表格带分页&#xff1b;3.表单验证&…

作者头像 李华