Pyhton学习——Day25

#面向对象的几个方法
#1.静态方法@staticmethod,不能访问类属性,也不能访问实例属性,只是类的工具包
#2.类方法:@classmethod,在函数属性前加上类方法,显示为(cls)代表类,类能访问到数据属性和函数属性,不能访问至实例属性
#3.静态属性:@property,把函数封装成一个数据属性的形式,让外部调用时看不到内部的逻辑;特点:定义时有self(实例本身)
#################################################################################################################
#组合(拼接):定义一个人的类,比如手、头、脚,这个属性又可以是通过一个实例化的对象,这就是组合
#用途:1.做关联、2.小的组成大的
# class Head:
# pass
# class Foot:
# pass
# class Trunk:
# pass
# class Hand:
# pass
# class Person:
# def __init__(self,id_num,head,foot,trunk,hand):
# self.id_num = id_num
# self.head = head()
# self.foot = foot()
# self.trunk = trunk()
# self.hand = hand()
# P1 = Person.__dict__
# print(P1)
# F:\Python\PythonLeaning\venv\Scripts\python.exe F:/Python/PythonLeaning/每日学习打卡/Day25.py
# {'__module__': '__main__', '__init__': <function Person.__init__ at 0x000000000297A6A8>,
# '__dict__': <attribute '__dict__' of 'Person' objects>, '__weakref__':
# <attribute '__weakref__' of 'Person' objects>, '__doc__': None}
#
# Process finished with exit code 0
#################################################################################################################
# class School:
# def __init__(self,name,addr):
# self.name = name
# self.addr = addr
#
# class Course:
# def __init__(self,name,price,period,school):
# self.name = name
# self.price = price
# self.period = period
# self.school = school
# def employ(self):
# print('%s 正在empoying'%self.name)
# s1 = School('oldboy','beijing')
# s2 = School('oldboy','nanjing')
# s3 = School('oldboy','dongjing')
# c1 = Course('linux',10,'1h',s1)
# c2 = Course('Python',100,'100h',s2)
# msg = '''
# 1 oldboy beijing
# 2 oldboy nanjing
# 3 oldboy dongjing
# '''
# while True:
# print(msg)
# menu = {
# '1':s1,
# '2':s2,
# '3':s3
# }
# choice = input('选择学校>>>')
# school_obj = menu[choice]
# # choice2 = input('选择课程>>>')
# name = input('课程名>>: ')
# price = input('课程费用>>: ')
# period = input('课程周期>>: ')
# new_course = Course(name, price, period, school_obj)
# print('课程【%s】属于【%s】学校' % (new_course.name, new_course.school.name))
# 模拟选课##############################################################################################
#################################################################################################################
#################################################################################################################
# 面向对象的三大特性
# 1.继承 2.多态 3.封装
# 一、什么是类的继承?
# 类的继承跟现实中的父子、孙子、重孙子、继承关系一样,父类又称为基类
# python中的类的继承分为:单继承和多继承
# class ParentClass1:
# pass
# class ParentClass2:
# pass
# class SubClass(ParentClass1): #单继承
# pass
# class SubClass(ParentClass1,ParentClass2): #多继承
# pass
# 二、子类到底继承了父类的什么属性
# 子类调用方法会触发父类的init方法,子类继承了父类的所有属性,但是子类的方法还是先调用自己的方法,找不到自己的方法才会去
# 父类去找方法或属性
# class robot:
# power = 100
# def __init__(self,name,energy):
# self.name = name
# self.energy = energy
# def act(self):
# print('%s机器人正在消耗能源'%self.name)
# class robot_arm(robot):
# def __init__(self,type):
# self.type = type
# def act1(self):
# print('%s型号机器人正在动arm'%self.type)
# r = robot('pandaboy','氢气能源')
# r1 = robot_arm('ASII')
# r1.act1()
# print(r1.power)
#################################################################################################################
# F:\Python\PythonLeaning\venv\Scripts\python.exe F:/Python/PythonLeaning/每日学习打卡/Day25.py
# ASII型号机器人正在动arm
# 100
#
# Process finished with exit code 0
#################################################################################################################
#################################################################################################################
# 什么时候用继承?
# 1.当类之间有显著不同,并且较小的类是较大的类所需要的组件,用组合比较好
# 例如:描述一个机器人类,机器人这个大类是由很多互不相关的小类组成的,如机器手臂类、身体类、电池类等
# 2.当类之间有很多相同的功能,提取这些共同的功能做成基类,用继承比较好
#################################################################################################################
# 什么是派生?
# 当然子类也可以添加自己新的属性或者在自己这里重新定义这些属性(不会影响到父类),需要注意的是,
# 一旦重新定义了自己的属性且与父类重名,那么调用新增的属性时,就以自己为准了。
#################################################################################################################
# 继承同时具有两种含义
# 含义一:继承基类的方法,并且自己的改变或者扩展(代码重用)
# 含义二:声明某个子类兼容于某基类,定义一个借口类,子类继承接口类,并且实现接口中定义的方法
# 实践中,继承的第一种含义意义并不是很大,甚至是有害的,因为它使得子类与基类出现强耦合
# 继承的第二种含义非常重要,它又叫"接口继承"
# 接口继承实质上是要求"做出一个良好的抽象,这个抽象规定了一个兼容接口,使得外部调用者无需关心具体细节,可以一视同仁
# 的处理实现特定接口的所有对象——这在程序设计上叫做归一化"
# 归一化使得高层的外部使用者可以不加区分的处理所有接口兼容的对象集合——就好像linux的泛文件对象概念一样,
# 所有的东西都可以当做文件处理,不必关心它是内存、磁盘、网络还是屏幕(当然,对于底层设计者,也可以区分出"字符设备"和"块设备")
# 然后做出针对性的设计,细致到什么程度,视需求而定
# 一切皆文件是没有意义的,归根结底就是全部都是读和写
#################################################################################################################
# 接口继承代表定义一个基类,类当中把接口的方法定义一个函数,来一个子类就必须实现基类的方法
# 接口就是一个函数
# import abc
# 1.python可以继承多个类,java和c只能继承一个类
# 2.python如果继承了多个类,那么寻找方法的方式有两种,分别是深度优先和广度优先
# 当类是经典类时,多继承情况下,会按照深度优先方式查找
# 当类时新式类时,多继承情况下,会按照广度优先方式查找
#————————————————————————————————————————————————————————
# 继承顺序
# class A:
# pass
# class B(A):
# pass
# class C(A):
# pass
# 在子类中继承父类
# super().__init__()
# 运行super调用super下的方法








转载于:https://www.cnblogs.com/pandaboy1123/p/8485838.html

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

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

相关文章

龙芯IPC追平Zen2 稳步推进产业生态

日前&#xff0c;2022年信息技术自主创新高峰论坛在南京成功召开&#xff0c;来自政府、产业、各行业领域的领导、专家学者、企业代表齐聚长江之滨&#xff0c;共话信息产业自主创新发展。铁流谈谈会上几个亮点。龙芯LA664追平AMD zen2相对于一些技术引进CPU在引进海外技术后CP…

摄像头水平视野垂直视野?_如何在“动物穿越:新视野”中的梦中游览某人的岛屿...

摄像头水平视野垂直视野?The promised second summer update for Animal Crossing: New Horizons has been released, and it restores the ability to visit another player’s island in your dreams. Before you can do so, though, you’ll need a Nintendo Online member…

中文版onlyoffice镜像制作

原文同步于&#xff1a;https://www.daxueyiwu.com/post/761 拉取5.4.2.46版本onlyoffice/documentserver镜像 docker pull onlyoffice/documentserver:5.4.2.46 该版本是支持20个连接数破解限制的最后一个版本&#xff0c;也是对中文字体界面显示中文不乱码支持比较好的一个版…

C++中的namespace ----转载

转自&#xff1a;http://blog.csdn.net/yao_zhuang/article/details/1853625 namespace中文意思是命名空间或者叫名字空间&#xff0c;传统的C&#xff0b;&#xff0b;只有一个全局的namespace&#xff0c;但是由于现在的程序的规模越来越大&#xff0c;程序的分工越来越细&am…

使用访问控制策略访问服务网格内的服务

当在实施服务网格时&#xff0c;不可避免的存在网格外服务访问网格内服务的情况&#xff0c;也就是服务网格的平滑落地。这种中间状态可能会持续较长的时间&#xff0c;也是我们在落地的时候需要解决的问题之一。又或者&#xff0c;有的应用处于某些考虑并不适合使用服务网格&a…

Scrapy从理论到爬图

Scrapy系列教程&#xff1a; https://www.daxueyiwu.com/post/71 scrapy爬虫启示录-小伙子老夫看你血气方刚这本《爬虫秘录》就传给你了 0 点赞 ⋅ 0 回复 ⋅ 5月前 Scrapy初章-Scrapy理论简介 0 点赞 ⋅ 0 回复 ⋅ 5月前 Scrapy次章-啥也不干就是爬图 0 点赞 ⋅ 0 回复 ⋅ 5月…

gfi截图_GFI Backup Home Edition是Windows的免费数据备份实用程序

gfi截图In today’s tough economic times the last thing you want is to lose important data because you couldn’t afford a quality backup utility. Today we look at GFI Backup Home Edition, a completely free professional grade backup solution. 在当今艰难的经…

需求工程阅读笔记03

需求工程与运营商技术管理人员的结合点思考&#xff1b; 运营商的技术管理人员有时会发现自己处于比较尴尬的一个境地&#xff0c;因为一方面自己并不直接开发、实现各种系统&#xff0c;而都是采用外包的方式&#xff0c;业务的需求都是经由自己再转给外包方&#xff0c;感觉自…

使用BeetleX.MQTT构建服务

已经有很长一段时间没有写代码&#xff0c;为了不让自己的代码技能有所下降所以针对BeetleX扩展了一个MQTT协议来保持自己的代码设计和编写能力。接下来简单介绍一下如何使用BeetleX.MQTT来构建对应的TCP或WebSocket服务。 以下实现是针对MQTT 3.1.1版本&#xff0c;协议的实…

vlc 视频流跳数_如何解决在播放高清晰度视频文件的VLC中跳过和滞后的问题

vlc 视频流跳数VLC is the king of all media… it plays almost anything on any platform, any time, any place. It’s great. Lately, however, I’ve been having issues with VLC skipping whenever I’m playing high-def media streaming over a network. VLC是所有媒体…

求助:关于sql如何统计时间的问题

三、现在我们假设应用计时分为app应用和web应用&#xff0c;需要考虑如下几个方面&#xff1a; &#xff08;1&#xff09;多时间段&#xff08;2&#xff09;表中有冗杂数据 &#xff08;3&#xff09;用户是在web端和app端都登陆&#xff0c;这种类型的重复时间段只能取其一 …

onlyoffice中文字体下载

原文同步自作者博客&#xff1a;https://www.daxueyiwu.com/post/778 下划线开头的是页面显示中文的字体&#xff0c;不带下划线的是页面显示英文的字体 calibri.ttf -CalibriTimes New Roman.ttf _FANGSONG.otf -仿宋FANGSONG.otf_FS_GB2312.otf -仿宋_GB2312_HWZS.otf -华文…

onlyoffice 20并发限制处理

原文同步自作者博客&#xff1a;https://www.daxueyiwu.com/post/31 开源版本连续打开20个页面就会弹出该提示。 一.方案一 修改六个app.js文件 find ./ -name app.js 目录下所有app.js文件&#xff0c;对代码行进行修改&#xff0c;只是经过简单的测试&#xff0c;希望发现…

[Linux环境]-centos7下安装jdk1.8.0_141流程.

1.查看当前虚拟机java环境版本: java -version [rootcentos-linux-7 bin]# java -version java version "1.7.0_111" OpenJDK Runtime Environment (rhel-2.6.7.2.el7_2-x86_64 u111-b01) OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode) 2.查看当前安装版…

石桥图里的一个故事

唐朝诡事录有一个石桥图章节&#xff0c;里面记载了一个故事。十年前&#xff0c;南州乡贤谢员外的两个儿子&#xff0c;要求谢家的老仆人带自己去湖里游玩。哪知游玩到湖中间&#xff0c;突然下起了瓢泼大雨&#xff0c;员外家的一个儿子被惊吓掉落水里。老仆人的儿子赶忙去救…

onlyoffice更新中文字体总结

原文同步自作者博客&#xff1a;https://www.daxueyiwu.com/post/760 1. 通过字体修改软件FontCreator修改字体名称 &#xff08;1&#xff09;下载fontcreat.exe &#xff08;2&#xff09;将Windows/fonts 下的字体文件拷贝至 我的文档/fonts (3) 使用fontcreat打开字体…

ubuntu 键盘快捷键_如何使用键盘快捷键在Ubuntu中提高生产力

ubuntu 键盘快捷键diceareawesome1/Shutterstock.comdiceareawesome1 / Shutterstock.comWe’re always looking for new ways to speed up everyday tasks in Ubuntu. We’ll show you some keyboard shortcuts you might not have known about, and show you how to make you…

核心编程之十一章的11-9

def add(x,y): a x y def average(): list1 [] list1.append(a/2) print(list1) return a #为什么return a 放在这里呢&#xff0c;因为如果放在外面的话&#xff0c;根据return的属性&#xff0c;会结束嵌套数函数 return average() …

Ubuntu 桌面系统升级

本文介绍 Ubuntu 桌面系统升级的两种方式&#xff0c;通过 UI 或命令行的方式&#xff0c;演示为 20.04 升级为 22.04。并介绍了 windows 的 Linux 子系统 wsl 的升级注意事项。背景之前在学习 ROS2 时&#xff0c;安装 ros-humble-desktop 出现依赖错误&#xff1a;无法修正错…

onlyoffice修改左上角的logo

原文同步自作者博客&#xff1a;https://www.daxueyiwu.com/post/770 1. 商用版config里配置就能修改logo "editorConfig": {"customization": {"logo": {"image": "https://example.com/logo.png","imageEmbedded&q…