news 2026/6/10 9:46:40

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/6/10 14:11:15

Homebrew vs 手动安装:效率对比实测报告

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个Homebrew效率分析工具。功能&#xff1a;1) 记录软件安装耗时 2) 对比手动安装流程 3) 生成可视化对比图表 4) 计算时间节省百分比 5) 支持导出测试报告。界面需要时间轴对…

作者头像 李华
网站建设 2026/6/10 2:00:12

AI帮你自动生成《以日为鉴》PDF电子书

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 请开发一个AI工具&#xff0c;能够根据用户输入的关键词以日为鉴&#xff0c;自动从公开资源中收集相关内容&#xff0c;整理成结构化的电子书格式&#xff0c;并生成PDF文件。要求…

作者头像 李华
网站建设 2026/6/10 4:08:35

EASYPOI极简入门:5分钟搞定Excel导入导出

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个极简的EASYPOI入门教程项目&#xff0c;要求&#xff1a;1) 最简单的Maven依赖配置 2) 基础数据导出示例&#xff08;支持List<Map>和List<Entity>两种方式&a…

作者头像 李华
网站建设 2026/6/9 5:09:24

如何用AI快速搭建免费行情数据网站

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个免费的实时行情数据展示网站&#xff0c;支持股票、基金和加密货币行情。要求&#xff1a;1.前端使用Vue3Element Plus实现响应式布局 2.后端使用Node.js定时抓取公开行情…

作者头像 李华
网站建设 2026/6/10 0:32:30

如何用AI工具免费降低论文重复率?

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个免费的AI降重工具&#xff0c;支持上传论文文档&#xff0c;自动分析重复内容并提供改写建议。工具应支持多种格式&#xff08;如docx、pdf&#xff09;&#xff0c;提供实…

作者头像 李华
网站建设 2026/6/10 19:14:12

缓存穿透、缓存击穿、缓存雪崩

什么是缓存穿透&#xff1f;如何解决&#xff1f;缓存穿透就是大量请求去访问数据库与缓存中都不存在的数据&#xff0c;因为数据库不存在&#xff0c;缓存肯定不存在就不生效&#xff0c;所有请求最终都流转到了数据库&#xff0c;导致数据库压力过大而宕机。解决方法常用的有…

作者头像 李华