多态、类和实例、动态添加属性和方法、设计模式-单例、异常、模块、发布包、python标准库以及拓展库、VMware的使用、linux中的几个基本语法

issubclass(A,B)判断A是否是B的子类
在这里插入图片描述

面向对象三大特性

封装:

根据职责将属性和方法封装到一个抽象类中,是定义类的准则

继承:

实现代码的复用,相同代码不要重写,是设计类的技巧,而且子类可以针对自己的需求,编写特定代码

多态:

不同子类对象调用父类代码,产生不同的执行结果,以继承和重写父类方法为前提,是调用方法的技巧,对类的内部设计无影响
例:在这里插入图片描述
Person类中,只需要让dog对象调用game方法,但是不关心具体是调用哪个类里面的。game方法是在Dog父类中定义的,Xiaotian子类重写的,程序执行时,通过传入不同狗对象实参,产生不同执行效果
运用多态调用某个方法时,总是先在自己类中查找该方法,如果没有匹配的,就顺着继承链往上查找,直到在某个父类中找到为止
也就是:通过传递的对象不同,执行不同的功能代码
还可以:父类根据不同子类执行不同功能代码
在这里插入图片描述

类属性:

不带self前缀的,在类内部、方法外
怎么使用?
类内部使用时,类名.类属性名,在类外部使用时,类名.类属性名或者实例名.类属性名

实例属性:

带self前缀的,在方法内部
怎么使用?
类内部使用时,self.属性名,在类外部使用时,实例名.属性名
在这里插入图片描述

实例方法

类中参数为self 的均为实例方法

类方法

在一个类中,用@classmethod修饰的,参数为cls 的均为实例方法
在这里插入图片描述
由此可以看出,类属性、类方法的调用,都是可以通过类和实例分别调用的,类方法也会用于对类属性进行修改

静态方法

静态方法用@staticmethod进行修饰,不需要定义多余参数,除操作实例属性和类属性以外的都可以在这个方法中进行实现,一般用于打印菜单之类的

类属性、实例属性、类方法、实例方法、静态方法的综合案例:
在这里插入图片描述

python语言是一个动态编程语言,在运行时也可以改变其结构

1.属性

在运行过程中给对象(实例)绑定(添加)属性
在这里插入图片描述
这其中的地址就是在运行过程中给对象绑定的属性
运行过长中若要删除对象某个属性:del lw.age或者delattr(lw,“name”)
在这里插入图片描述
通过dir()来讲对象内含有的所有属性和方法都打印出来,可以两次删除后lw最后新添加的几个属性明显被删除了
也可以在运行过程中给类添加属性,添加后通过该类所创建的对象都含有这个属性,删除类属性的方法和删除实例属性方法相同

2.方法

为对象添加方法
在运行过程中添加方法时,容易出现找不到参数的报错情况,所以我们需要用types.TypeMethod为方法定义好参数,如果定义的方法没有参数,那么正常调用就可以
在这里插入图片描述
为类添加方法
在这里插入图片描述

slots

由于这种动态的特性,使得程序具有安全隐患,此时可以使用__slots__来对类中可以添加的属性进行限制,但是此方法限制的属性无法被继承在这里插入图片描述

@property:

将方法作为属性使用,是目前最常用的封装,这样可以很好的将我们的方法隐藏在这里插入图片描述
上周所学的__init__方法一般用来初始化,每次新创建一个对象就会自动调用它,但实际上在程序运行时,每当创建一个对象时,程序先调用底层的__new__方法,返回一个对象,随后__init__捕捉到此对象才会进行调用,若是__new__方法没有返回对象,__init__就不会调用了,所以说__new__方法才是程序运行时第一个调用的方法,一般不写的时候会自动调用object中的。
总结:Python的new方法负责创建,init方法负责初始化,也就是没有对象怎么初始化?

设计模式——单例

一般是创建一个对象,程序内部就为这个对象开辟一个空间,而单例模式是不论用一个类创建多少对象,这些对象都用同一个内存空间。
这个模式只需要首先定义一个类的私有属性,然后在new方法中用循环实现在这里插入图片描述
一般情况下:如果一个变量是用来存储数字的话,它的初始值为0。如果一个变量是用来存储字符串的话,它的初始值为””,如果一个变量是用来存储对象的话,那么它的初始值为None。
同理,我们也可以利用类的私有属性和循环,让一个类只初始化一次,也就是只init一次在这里插入图片描述
单例模式,一般创建一次对象初始化一次就够了。

异常处理

将有可能异常的代码放到try中,产生异常时的处理代码放在except中。
程序执行的时候先执行try中的代码,如果中间某一行代码出现了异常,那么就不再执行异常代码后面的代码,然后执行except后面的内容。如果没有出现异常,就把try中的代码从头到尾执行一遍,然后except中的代码不执行。try except 整个代码块都执行完了,后面还有后续的代码,程序继续往下正常执行
在这里插入图片描述
常用的异常类型:NameError(变量名字不存在)、FileNotFoundError(打开一个不存在的文件)、ZeroDivisionError(除数为0)
若想一次捕获多个异常,异常类型那里可以用元组的形式,也可以直接用Exception或者直接省略except后面的异常类型,这个里面包含了所有的异常类型,但是就不能准确地写出具体错误信息的名称了,不利于代码的修改和查看,此时可以用as在这里插入图片描述
也可以try 后面跟多个except
可以try—except—else,此时,else中的语句是没有异常的时候才会输出的
还可以try—except—else----finally,此时finally中的语句无论程序什么情况都会被执行
异常控制语句可以嵌套使用且具有传递性,例:在这里插入图片描述
也可以自己定义一个异常类,然后在try中当满足某种情况时利用raise抛出异常在这里插入图片描述

关于模块

模块在使用的时候都是需要import的
之前有写过很多模块,今天再写一下常用模块:

random模块

用于生成随机数,其中random.randint(a,b)用于生成一个指定范围内的随机整数,a是上线,b是下线

os模块

主要用于文件方面,例如os.__file__是用来获得文件所在路径的,此时得到的是一个相对路径
jieba,pyttxs3等也都是模块,不过这两个需要先安装,不是python自带的模块。

自定义模块

可以在一个python文件中定义变量或者函数,然后在另一个文件中import这个模块,导入以后就可以使用模块名.变量/模块名.函数的方式,使用模块中的内容了
例:将上面自己写的那个异常类的文件作为一个模块导入其他文件中进行使用。
这是我先定义的异常类
在这里插入图片描述
接下来是将异常类文件作为模块在其他文件中使用
在这里插入图片描述
将testsundang作为模块import以后,我们就会发现,在我们的项目文件夹中多了一个文件在这里插入图片描述
在这里插入图片描述
这个pyc文件是由python解释器将模块的源码转换为字节码,这样保存是对启动速度的优化,有了模块文件的字节码文件以后,下一次运行程序时,如果上次保存后没有修改过源代码,python将会加载.pyc文件并且跳过编译这个步骤,如果修改了源代码,下次程序运行时,字节码将自动重新创建

当导入某个模块的时候,系统会自动把这个模块的内容从头到尾执行一遍,所以可以用if __ name__== “__ main__”:方法的调用放在里面。
当你导入一个文件的时候,这个文件中__name__表示的就是你导入的那个文件的路径,而并不是__main__了。

如何发布包

1.新建setup文件在这里插入图片描述
2.build刚刚新建的文件在这里插入图片描述
3.生成压缩包在这里插入图片描述
随后可以把压缩包传给别人,别人如果要用,下载后解压,然后在cmd中利用install命令安装一下这个模块就可以使用了

安装模块的两种方法:

pip install 模块的名 这种叫做网络安装,readtimeout 网不好的话,就会超时,需要依靠网络才能进行安装。

python setup.py install 这种叫做源码安装,也就是我们将人家的源代码下载下来以后,进行的安装,就叫做源码安装。
python的常用标准库:
在这里插入图片描述
常用拓展库:在这里插入图片描述
虚拟机的安装和创建:
首先安装在除c盘以外的盘中,找个地方大的就行,一路默认选项下一步就可以
删除:只有以下这种方式是彻底删除
在这里插入图片描述
centos系统的安装:浏览选中即可在这里插入图片描述
VMware中为用户提供了两个备份功能:
快照:短期备份,需要频繁备份的时候可以使用
克隆:就是复制的意思,长期备份选克隆,克隆的时候被克隆的虚拟机必须是关闭状态哦

linux中的基础指令:

ls、pwd、cd、mkdir、touch、cp、rm、vim、输出重定向、cat

pwd指令:打印当前工作目录路径
ls指令:
用法1:ls

含义:列出当前工作目录下的所有文件/文件夹的名称

用法2:ls 路径

含义:列出指定路径下的所有文件/方件夹的名称。
关于路径:
路径可以分为两种:相对路径、绝对路径。
相对路径:相对首先得有一个参照物(一般就是当前的工作路径)。
相对路径的写法:在相对路径中通常会用到2个符号【“./”表示当前目录】和【“…/”上一级目录】

用法3:ls 选项 路径

含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。
ls -l 路径:以列表形式返回
ls -a 路径:显示所有文件/文件夹,包括隐藏的(隐藏文档一般以.开头)
ls -lh 路径:列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候以可读性较高的形式显示。

简写模式:ll
clear指令:

清屏,快捷键是ctrl + l,windows中使用的是cls命令

cd指令:

改变目录。
作用:用于切换当前的工作目录。
语法:cd 路径。
注:
在Linux中有一个特殊的符号“~”,表示当前用户的家目录,也就是可以回到当前用户的家目录下面。cd 后面什么都不写也是表示切换到当前用户家目录
cd /表示回到根目录

mkdir指令:

创建目录,也就是创建文件夹

语法1:mkdir 目录名

在已经存在的目录中创建目录。

语法2:mkdir -p 路径

含义:当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错。

语法3:mkdir 路径1 路径2 路径3 …

表示一次性创建多个目录,不可以创建文件哦!

rmdir指令:删除空目录。
用法一:rmdir 目录名

删除空目录。

用法二:rmdir 目录1 目录2 目录3 …

同时删除多个目录

用法三:rmdir -p 路径

递归删除空目录,首先删除子目录,删除成功后,删除上级目录,直至结束,非空的不能删哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值