网站建设关键字优化网页制作基础教程visual studio code

news/2025/10/3 20:05:32/文章来源:
网站建设关键字优化,网页制作基础教程visual studio code,建筑工程网络设计,谷歌网页Python面向对象编程 1.面向对象概念介绍1) 面相过程 —— 怎么做#xff1f;2#xff09;面向对象 谁来做 2.类和对象2.1类2.2对象2.3类和对象的关系2.4类的设计2.5面向对象设计案例 士兵类设计2.6身份运算符 3.私有属性和私有方法3.1. 应用场景及定义方式 4.继承、多态重写父… Python面向对象编程 1.面向对象概念介绍1) 面相过程 —— 怎么做2面向对象 谁来做 2.类和对象2.1类2.2对象2.3类和对象的关系2.4类的设计2.5面向对象设计案例 士兵类设计2.6身份运算符 3.私有属性和私有方法3.1. 应用场景及定义方式 4.继承、多态重写父类的私有属性和私有方法多进程• 多态 5.类属性和类方法5.1 术语—— 实例5.21.2 类是一个特殊的对象5.3. 类属性和实例属性5.4. 类方法和静态方法5.5静态方法 1.面向对象概念介绍 1.1 过程和函数科普 • 过程 是早期的一个编程概念 • 过程 类似于函数只能执行但是没有返回值 • 函数 不仅能执行还可以返回结果1.2 面相过程 和 面相对象 基本概念 1) 面相过程 —— 怎么做 把完成某一个需求的 所有步骤 从头到尾 逐步实现根据开发需求将某些 功能独立 的代码 封装 成一个又一个 函数最后完成的代码就是顺序地调用 不同的函数 特点注重 步骤与过程不注重职责分工如果需求复杂代码会变得很复杂开发复杂项目没有固定的套路开发难度很大 2面向对象 谁来做 相比较函数面向对象 是 更大 的 封装根据 职责 在 一个对象中 封装 多个方法 在完成某一个需求前首先确定 职责 —— 要做的事情方法根据 职责 确定不同的 对象在 对象 内部封装不同的 方法多个最后完成的代码就是顺序地让 不同的对象 调用 不同的方法 特点注重 对象和职责不同的对象承担不同的职责更加适合应对复杂的需求变化是专门应对复杂项目开发提供的固定套路需要在面向过程基础上再学习一些面向对象的语法 2.类和对象 类和对象的概念 类 和 对象 是 面向对象编程的 两个 核心概念 2.1类 • 类 是对一群具有 相同 特征 或者 行为 的事物的一个统称是抽象的不能直接使用 – 特征 被称为 属性 – 行为 被称为 方法 • 类 就相当于制造飞机时的图纸是一个 模板是 负责创建对象的 2.2对象 • 对象 是 由类创建出来的一个具体存在可以直接使用 • 由 哪一个类 创建出来的 对象就拥有在 哪一个类 中定义的 2.3类和对象的关系 • 类是模板对象 是根据 类 这个模板创建出来的应该 先有类再有对象 • 类 只有一个而 对象 可以有很多个 – 不同的对象 之间 属性 可能会各不相同 • 类 中定义了什么 属性和方法对象 中就有什么属性和方法不可能多也不可能少 2.4类的设计 在使用面相对象开发前应该首先分析需求确定一下程序中需要包含哪些类 在程序开发中要设计一个类通常需要满足一下三个要素 1 类名 这类事物的名字满足大驼峰命名法 2 属性 这类事物具有什么样的特征 3 方法 这类事物具有什么样的行为 驼峰命名法 CapWords 1 每一个单词的首字母大写 2 单词与单词之间没有下划线 3.1 类名的确定 名词提炼法 分析 整个业务流程出现的 名词通常就是找到的类 3.2 属性和方法的确定 • 对 对象的特征描述通常可以定义成 属性 • 对象具有的行为动词通常可以定义成 方法 提示需求中没有涉及的属性或者方法在设计类时不需要考虑 实例 代码 #!/usr/bin/python # author X_Dragon # E-mail:3270895551qq.comclass Person:def __init__(self, name, age, height):self.name nameself.age ageself.height heightdef introduce(self):print(我是%s今年%d岁身高%.2f % (self.name, self.age, self.height))def run(self):print(%s爱跑步跑步锻炼身体 % self.name)def eat(self):print(%s是吃货吃完再减肥 % self.name)xiaoming Person(小明, 18, 180) xiaoming.introduce() xiaoming.run() xiaoming.eat() print(xiaoming)# 打印地址 0x0000015E2D92BFD0xiaomeiPerson(小美,20,168) xiaomei.introduce() xiaomei.run() xiaomei.eat() print(xiaomei) # 0x0000015E2D92BE50运行截图 2.5面向对象设计案例 士兵类设计 需求 代码 #!/usr/bin/python # author X_Dragon # E-mail:3270895551qq.comclass Gun:def __init__(self,gun_model):# 枪的型号self.modelgun_model# 剩余子弹self.bullet_count0# 默认0# 填充子弹def Add_bullet(self,count):self.bullet_countcount# 射击def Shoot(self):if(self.bullet_count0):self.bullet_count - 1print(开始射击剩余子弹%d%self.bullet_count)else:print(枪没有子弹了请填充子弹) # 创建枪的对象 AK47 ak47Gun(ak47) ak47.Add_bullet(50) ak47.Shoot()# 开发士兵类 class Soldier:def __init__(self,name):self.namenameself.gunNone# 默认新兵没枪def fire(self):if(self.gun is None):print(%s还没有枪....%self.name)return# 到这一步 满足有枪的条件print(冲锋......我是:[%s]%self.name)# 装子弹print(装子弹....)self.gun.Add_bullet(50)# 发射self.gun.Shoot() # 创建实例 M4Gun(M4) XUSANDUOSoldier(许三多) XUSANDUO.gunM4# 如果是新兵 就不配枪 XUSANDUO.fire() 运行 小结 2.6身份运算符 is和区别 3.私有属性和私有方法 3.1. 应用场景及定义方式 应用场景 • 在实际开发中对象 的 某些属性或方法 可能只希望 在对象的内部被使用而不希望在外部被访问到 • 私有属性 就是 对象 不希望公开的 属性 • 私有方法 就是 对象 不希望公开的 方法定义方式 • 在 定义属性或方法时在 属性名或者方法名前 增加 两个下划线定义的就是私有 属性或方法 在Python中你可以将对象的属性设为私有属性以防止直接访问和修改它们。要将属性设置为私有属性通常在属性名称前面添加一个下划线前缀单个下划线这是一种约定表示该属性是私有的应该在类的内部使用而不是在外部直接访问。虽然这不会强制阻止外部访问但它是一种约定告诉其他开发者应该将其视为私有属性。 下面是一个示例演示如何在Python类中使用私有属性 class Person:def __init__(self, name, age):self._name name # 前面添加下划线表示私有属性self._age agedef introduce(self):print(f我是{self._name}今年{self._age}岁。)def change_name(self, new_name):self._name new_name # 类的内部可以修改私有属性# 创建对象 xiaoming Person(小明, 20)# 访问私有属性 print(xiaoming._name) # 仍然可以访问但不建议在外部直接访问# 通过对象方法修改私有属性 xiaoming.change_name(小红)# 再次访问私有属性 print(xiaoming._name) # 仍然可以访问但不建议在外部直接访问 在上面的示例中我们将 name 和 age 属性设为私有属性添加了一个下划线前缀。虽然我们仍然可以在外部访问和修改这些属性但是约定是在类的内部使用它们而不要在外部直接访问。此外我们还提供了一个对象方法 change_name允许在类的内部修改私有属性的值。这种方法提供了更好的封装和控制以防止意外的外部访问和修改。 运行 如图 哪怕是按_命名私有了外部对象依旧可以访问私有那么私有怎么体验呢CHATGPD回答 4.继承、多态 继承的概念子类继承父类的方法和属性 继承语法 继承的语法 class 类名(父类名): pass • 子类 继承自 父类可以直接 享受 父类中已经封装好的方法不需要再次开发 • 子类 中应该根据 职责封装 子类特有的属性和方法专业术语 • Dog 类是Animal 类的子类Animal 类是Dog 类的父类Dog 类从Animal 类继承 • Dog 类是Animal 类的派生类Animal 类是Dog 类的基类Dog 类从Animal 类派生继承的传递性 • C 类从B 类继承B 类又从A 类继承 • 那么C 类就具有B 类和A 类的所有属性和方法 子类 拥有 父类 以及 父类的父类 中封装的所有 属性 和 方法 实例 #!/usr/bin/python # author X_Dragon # E-mail:3270895551qq.com class Animal:def eat(self):print(吃-------)def sleep(self):print(睡-------)class Dog(Animal):# 狗叫def bark(self):print(汪汪旺-------)dDog() d.bark() d.sleep() d.eat() 运行 可见 dog继承了Animal的eat、sleep类 重写 重写 父类方法有两种情况 1 覆盖 父类的方法 2 对父类方法进行 扩展 覆盖父类的方法 • 如果在开发中父类的方法实现 和 子类的方法实现完全不同 • 就可以使用 覆盖 的方式在子类中重新编写 父类的方法实现 具体的实现方式就相当于在 子类中 定义了一个 和父类同名的方法并且实现 重写之后在运行时只会调用 子类中重写的方法而不再会调用 父类封装的方法 对父类方法进行扩展 • 如果在开发中子类的方法实现 中 包含父类的方法实现 – 父类原本封装的方法实现 是 子类方法的一部分 • 就可以使用 扩展 的方式 a) 在子类中重写 父类的方法 b) 在需要的位置使用super().父类方法来调用父类方法的执行 c) 代码其他的位置针对子类的需求编写 子类特有的代码实现 关于super • 在Python 中super 是一个 特殊的类 • super() 就是使用super 类创建出来的对象 • 最常 使用的场景就是在 重写父类方法时调用 在父类中封装的方法实现实例 #!/usr/bin/python # author X_Dragon # E-mail:3270895551qq.com class Animal:def eat(self):print(吃-------)def sleep(self):print(睡-------)class Dog(Animal):# 狗叫def bark(self):print(汪汪旺-------)class xiaotianquan(Dog):def fly(self):print(我会飞........)# 重写 barkdef bark(self):print(哮天犬在咆哮........)xtqxiaotianquan() xtq.bark() xtq.fly() xtq.sleep() xtq.eat()上面实例 哮天犬就把dog类的bark重写了 父类的私有属性和私有方法 1 子类对象不能 在自己的方法内部直接 访问父类的 私有属性 或 私有方法 2 子类对象 可以通过 父类 的 公有方法间接 访问到 私有属性 或 私有方法父类在自己的公有方法中调用私有方法 • 私有属性、方法 是对象的隐私不对外公开外界 以及 子类 都不能直接访问 • 私有属性、方法 通常用于做一些内部的事情 示例 B的对象不能直接访问 num2 属性 • B 的对象不能在demo 方法内访问 num2 属性 • B 的对象可以在demo 方法内调用父类的test 方法 • 父类的test 方法内部能够访问 num2 属性和 test 方法 测试代码 class A:def __int__(self):self.num1100self._num2200def _test(self):print(这是一个内部方法) class B(A):def demo(self):pass bB() print(b) print(b._test()) print(b._num2) 继承规则 运行结果 多进程 Python 中的MRO —— 方法搜索顺序知道 • Python 中针对 类 提供了一个 内置属性 mro 可以查看 方法 搜索顺序 • MRO 是method resolution order主要用于 在多继承时判断方法、属性的调用路径 print(C. mro )输出结果 (class ’ main .C’, class ’ main .A’, class ’ main .B’, cla ss ‘object’) • 在搜索方法时是按照 mro 的输出结果 从左至右 的顺序查找的 • 如果在当前类中 找到方法就直接执行不再搜索 • 如果 没有找到就查找下一个类 中是否有对应的方法如果找到就直接执行不再搜索 • 如果找到最后一个类还没有找到方法程序报错 2.2 新式类与旧式经典类 object 是Python 为所有对象提供的 基类提供有一些内置的属性和方法可以使用dir 函数查看 • 新式类以object 为基类的类推荐使用 • 经典类不以object 为基类的类不推荐使用 • 在Python 3.x 中定义类时如果没有指定父类会 默认使用 object 作为该类的 基类 —— Python 3.x 中定义的类都是 新式类 • 在Python 2.x 中定义类时如果没有指定父类则不会以object 作为 基类 新式类 和 经典类 在多继承时—— 会影响到方法的搜索顺序 为了保证编写的代码能够同时在Python 2.x 和Python 3.x 运行 今后在定义类时如果没有父类建议统一继承自object class 类名(object): pass Python 至少有三种不同的 MRO 而这个 MRO 列表的构造是通过一个 C3 线性化算法来实现的。我们不去深究这个算法的数学原理,它实际上就是合并所有父类的 MRO 列表并遵循如下三条准则: 子类会先于父类被检查多个父类会根据它们在列表中的顺序被检查如果对下一个类存在两个合法的选择,选择第一个父类 • 多态 面向对象三大特性 1 封装 根据 职责 将 属性 和 方法封装 到一个抽象的 类 中 – 定义类的准则 2 继承实现代码的重用相同的代码不需要重复的编写 – 设计类的技巧 – 子类针对自己特有的需求编写特定的代码 3 多态 不同的 子类对象 调用相同的 父类方法产生不同的执行结果 – 多态 可以 增加代码的灵活度 – 以 继承 和 重写父类方法 为前提 – 是调用方法的技巧不会影响到类的内部设计单一职责开放 封闭—对扩展开放对修改封闭 演示 需求 1 在Dog 类中封装方法game – 普通狗只是简单的玩耍 2 定义XiaoTianDog 继承自Dog并且重写game 方法 – 哮天犬需要在天上玩耍 3 定义Person 类并且封装一个 和狗玩 的方法 – 在方法内部直接让 狗对象 调用game 方法 #!/usr/bin/python # author X_Dragon # E-mail:3270895551qq.com class Dog:def __init__(self,name):self.namenamedef game(self):print(普通狗 普通玩耍 在地面哇哇哇....) class XIAOTIANQUAN(Dog):def game(self):print(我是哮天犬我在天上玩耍芜湖.....) class Person:def __init__(self,name):self.namenamedef game(self,dog):print(和%s快乐玩耍%dog.name)wangcaiDog(旺财) XTQXIAOTIANQUAN(哮天犬)xiaomingPerson(小明)xiaoming.game(XTQ) 运行 5.类属性和类方法 5.1 术语—— 实例 1 使用面向对象开发第 1 步 是设计 类 2 使用 类名() 创建对象创建对象 的动作有两步 – 1) 在内存中为对象 分配空间 – 2) 调用初始化方法 init 为 对象初始化 3 对象创建后内存 中就有了一个对象的 实实在在 的存在—— 实例 因此通常也会把 1 创建出来的 对象 叫做 类 的 实例 2 创建对象的 动作 叫做 实例化 3 对象的属性 叫做 实例属性 4 对象调用的方法 叫做 实例方法 在程序执行时 1 对象各自拥有自己的 实例属性 2 调用对象方法可以通过self. – 访问自己的属性 – 调用自己的方法 结论 每一个对象 都有自己 独立的内存空间保存各自不同的属性 • 多个对象的方法在内存中只有一份在调用方法时需要把对象的引用 传递到方法内部知道为啥要搞 self 了吧 5.21.2 类是一个特殊的对象 Python 中 一切皆对象 • class AAA: 定义的类属于 类对象 • obj1 AAA() 属于 实例对象 • 在程序运行时类 同样 会被加载到内存 • 在Python 中类 是一个特殊的对象—— 类对象 • 在程序运行时类对象 在内存中 只有一份使用 一个类 可以创建出 很多个对象实例 • 除了封装 实例 的 属性 和 方法外类对象 还可以拥有自己的 属性 和 方法 d) 类属性 e) 类方法 • 通过 类名. 的方式可以 访问类的属性 或者 调用类的方法 5.3. 类属性和实例属性 概念和使用 • 类属性 就是给 类对象 中定义的 属性 • 通常用来记录 与这个类相关 的特征 • 类属性不会用于记录 具体对象的特征 5.4. 类方法和静态方法 类方法 类属性 就是针对 类对象 定义的属性 – 使用 赋值语句 在class 关键字下方可以定义 类属性 – 类属性 用于记录 与这个类相关 的特征 • 类方法 就是针对 类对象 定义的方法 – 在 类方法 内部可以直接访问 类属性 或者调用其他的 类方法语法如下 classmethod def 类方法名(cls): pass • 类方法需要用 修饰器 classmethod 来标识告诉解释器这是一个类方法 • 类方法的 第一个参数 应该是cls – 由 哪一个类 调用的方法方法内的cls 就是 哪一个类的引用 – 这个参数和 实例方法 的第一个参数是self 类似 – 提示 使用其他名称也可以不过习惯使用cls • 通过 类名. 调用 类方法调用方法时不需要传递cls 参数 • 在方法内部 – 可以通过cls. 访问类的属性 – 也可以通过cls. 调用其他的类方法示例需求 5.5静态方法 • 在开发时如果需要在 类 中封装一个方法这个方法 – 既 不需要 访问 实例属性 或者调用 实例方法 – 也 不需要 访问 类属性 或者调用 类方法 • 这个时候可以把这个方法封装成一个 静态方法例如打印一些帮助语法如下 staticmethod def 静态方法名(): pass • 静态方法 需要用 修饰器 staticmethod 来标识告诉解释器这是一个静态方法 • 通过 类名. 调用 静态方法 创作不易 点赞发财~~~~

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

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

相关文章

使用 Copilot AI + Blazor 编一个五子棋游戏

1. 创建 Blazor web工程,选Auto2. 打开 GitHub Copilot 窗口,输入提示词 使用 Blazor 编一个五子棋游戏3.复制代码测试 为了方便调试, 我们先把运行模式由 InteractiveAuto 改为 InteractiveServer 打开 App.razor 编辑…

关于VMware虚拟机如何下载-2025.10.3

关于VMware虚拟机如何下载-2025.10.3现在要想下载VMware有以下办法: 一:直接到这个链接:https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion 点击 DOWNLOAD FUSION OR WORKSTATION后在这个…

RAG核心特性:ETL - 指南

RAG核心特性:ETL - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…

国庆集训做题10.1 - 10.3

国庆集训做题 CSP-S模拟25 t1 : 爱丽丝的数位划分 题意简述 : 将序列A划分为k个不相交连续非空子序列,求最大的总优美度。 优美度指子序列中十进制表示数字不同的个数,一个方案的优美度是所有子序列优美度的和 首先…

免费申请网站空间网站转化率分析工具

Java线程6种状态和工作原理详解,Java创建线程的4种方式 目录 一、Java线程的六种状态 二、Java线程是如何工作的? 三、BLOCKED 和 WAITING 的区别 四、start() 和 run() 源码分析 五、Java创建线程的所有方式和代码详解 1. 继承Thread类 2. 实现…

政务公开网站建设情况从哪里下载wordpress

以前安装这个软件的时候, 是在windows和mac上,都是图形化的安装方式,但是ubuntu不太一样,需要增加源,然后执行命令。安装的系统版本是2004。 参考链接1,主要命令包含下面几个部分: 第一步&…

XCSY暑期集训模拟赛2T3善良

XCSY暑期集训模拟赛2T3善良暴力(50pts) 对于每个询问,遍历\([l,r]\),统计其中k的数量,时间复杂度为\(O(nm)\)。 for(int i=1;i<=n;i++) cin>>a[i]; while(m--){cin>>l>>r>>k;int ans=0;…

玳瑁的嵌入式日记---0928(ARM--UART) - 指南

玳瑁的嵌入式日记---0928(ARM--UART) - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

网站开发需要那些技能电子商务平台中搜索词拆解时

产生原因:因为项目最近设计到了一个Quartz相关的模块&#xff0c;前端需要传递时间参数到后台, 然后后台设置一个新的定时任务, 所以后台需要一个可以实现Date与cron之间的相互转换(因为Quartz需要的Cron格式的数据)&#xff0c;所以就借助java的SimpleDateFormat的格式化,然后…

解决Visual Studio中无法使用scanf和C++万能头的问题

解决Visual Studio中无法使用scanf和C++万能头的问题Visual Studio中无法使用scanf和C++万能头? 来吧,跟我一起操作! 1.在桌面上创建万能头文件, 并命名为stdc++.h: 记得把文件后缀名给打开哟! 2.用记事本打开std…

太仓专业网站建设我想创个网站

目录 项目背景 项目技术栈 项目介绍 项目亮点 项目启动 1.创建SSM&#xff08;省略&#xff09; 2.配置项目信息 3.将前端页面加入到项目中 4.初始化数据库 5.创建标准分层的目录 6.创建和编写项目中的公共代码以及常用配置 7.创建和编写业务的Entity、Mapper、…

网页站点不安全静海网站开发

虚拟机是软件 对于第一次听说虚拟机&#xff08;Virtual Machine&#xff0c;VM&#xff09;的人来说&#xff0c;可能以为还要再花钱买一台计算机&#xff0c;这恐怕是他们最担心的。所谓虚拟机&#xff0c;就是在你的计算机上再虚拟出另一台计算机来。这台虚拟出来的计算机&…

技术培训学校机构做360手机网站优化

1.1. Socket简介 套接字&#xff08;socket&#xff09;是一种通信机制&#xff0c;凭借这种机制&#xff0c; 客户端<->服务器 模型的通信方式既可以在本地设备上进行&#xff0c;也可以跨网络进行。 Socket英文原意是“孔”或者“插座”的意思&#xff0c;在网络编程…

北京正规制作网站公司网页无法访问qq可以登陆

默认情况下&#xff0c;所有的新邮箱数据都是启用Exchange搜索&#xff0c;仅当多个邮箱迁移到该Exchange Server时&#xff0c;才禁用搜索索引。 获取数据库的Exchange搜索索引 使用Get-MailboxDatabase 来获取数据库的搜索索引 Get-MailboxDatabase | Select-Object Name,…

做爰全过程免费网站的视频教程网站资讯创作

本文将介绍以下内容&#xff1a; • 面向对象基本概念 • 类和结构体简介 • 引用类型和值类型区别 1. 引言 提起class和struct&#xff0c;我们首先的感觉是语法几乎相同&#xff0c;待遇却翻天复地。历史将接力棒由面向过程编程传到面向对象编程&#xff0c;class和stru…

学校网站管理与建设办法怎样建立自己购物网站

主流开发语言 Java 简介&#xff1a;Java 是一种广泛使用的面向对象的编程语言&#xff0c;由Sun Microsystems公司于1995年发布&#xff0c;后由Oracle公司接手。Java具有“一次编写&#xff0c;到处运行”的特性&#xff0c;它的跨平台能力得益于Java虚拟机&#xff08;JVM&a…

东莞网站设计公司排名企业网站建设感想

在 Oracle 数据库中&#xff0c;你可以使用 ALTER TABLE 语句来添加字段&#xff0c;并使用 COMMENT ON COLUMN 语句来添加字段注释。以下是一个示例&#xff1a; 假设你有一个名为 employees 的表&#xff0c;你想要添加一个名为 email 的字段&#xff0c;并为其添加注释。 …

最新企业网站开发和设计软件个人域名可以做公司网站么

简介&#xff1a; 淘宝搜索推荐、视频搜索的背后使用了什么样的检索技术&#xff1f;非结构化数据检索&#xff0c;向量检索&#xff0c;以及多模态检索&#xff0c;它们到底解决了什么问题&#xff1f;今天由阿里巴巴达摩院的科学家从业务问题出发&#xff0c;抽丝剥茧&#x…

前端如何优雅地生成唯一标识?——一份跨环境 UUID 设备函数的封装与实战

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

广州网站建设外包公司网站建设情况自查报告

1、syntax"proto3":表明使用的是proto3格式&#xff0c;如果不指定则为proto22、package test:定义包名为test&#xff0c;生成类时&#xff0c;会产生一个目录为test3、message Person:消息主体内容&#xff0c;里面为各个字段的定义二、生成对应的PHP类定义好Perso…