大数据 dtcms文档 numpy WorldCloud SCI macos animation recursion Font Awesome vue表单 管理后台ui jquery去除空格 oracle数据库版本 winbox使用教程 安装python python循环 python入门 python生成多个随机数 python创建txt文件并写入 python怎么下载 java入门教程 java取当前时间 java获取数据类型 javaspring java列表 linux入门 linux格式化命令 无限弹窗bat fdisk下载 php四舍五入 excel应用大全 tampermonkey 梦幻手游助手 1667 eagle软件 mathcad 0x000008e hedit 英特尔显卡驱动官方 华为工具箱
当前位置: 首页 > 学习教程  > 编程语言

python基础7

2020/11/24 9:41:21 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

Super()获得父类定义 多态 指的是同一个方法调用由于对象不同可能会产生不同的行为。 这里isinstance是查看是否m是Man的子类 运算符的重载 这里我把x加的顺序改变,add()的parameters 的顺序就改变了,self是加数,other是被加数 class Pers…

Super()获得父类定义

在这里插入图片描述

多态

指的是同一个方法调用由于对象不同可能会产生不同的行为。

这里isinstance是查看是否m是Man的子类

在这里插入图片描述

运算符的重载

在这里插入图片描述

这里我把x加的顺序改变,add()的parameters 的顺序就改变了,self是加数,other是被加数

class Person:
    def __init__(self,name):
        self.name = name 
    def __add__(self,other):
        return "{0}--{1}".format(self.name,other.name)    

s2 = Person("高淇")
p2 = Person("123")

x=p2+s2
print(x)

Object和Class的特殊属性

在这里插入图片描述

在这里插入图片描述

对象的浅拷贝深拷贝

在这里插入图片描述

首先变量赋值
地址完全一样
在这里插入图片描述

import copy

class CPU:
    def cal(self):
        print("cpu123")
        print("cpu对象对象对象:",self)
        
class cellphone:
    def __init__(self,cpu,screen):
        self.cpu = cpu
        self.screen = screen
        
class Screen:
    def display(self):
        print("显示")

c1 = CPU()
c2 = c1
print(c1)
print(c2)

s1 = Screen()
m1 = cellphone(c1,s1)
m2 = copy.copy(m1)
print(m1, m1.cpu, m1.screen)
print(m2, m2.cpu, m2.screen)

m3 = copy.deepcopy(m1)
print(m1,m1.cpu,m1.screen)
print(m3,m3.cpu,m3.screen)

浅复制只有第一个地址不一样,内部东西的地址都一样
深复制所有地址都不同
!](https://img-blog.csdnimg.cn/20201116090629290.png#pic_center)

组合

在这里插入图片描述
首先是继承
在这里插入图片描述
然后是组合
在这里插入图片描述
使用组合把之前例子cpu和screen组合进mobliephone类里,在mobliephone里使用cpu和screen的方法!!
在这里插入图片描述

设计模式____工厂模式实现

工厂模式造对象,对统一的对象进行管理,实现创建者和调用者的分离。
在这里插入图片描述
在这里插入图片描述

设计模式单例模式实现

在这里插入图片描述
仅仅初始化一次
在这里插入图片描述

异常(Exception)

异常处理的核心是,在异常发生的时候,我们可以继续剩余程序,而不会因为异常而终止程序执行。
异常条令太多,要求太高,核心代码就只有一句但是别的有很多句。
在这里插入图片描述
外部调用者只需要一个try就行了,具体写这个方法的人来管理这件事
在这里插入图片描述

异常继承关系

红色画圈的需要记住
在这里插入图片描述

异常出现

  1. 抛出异常
  2. 生成异常对象
  3. 停止当前执行路径
  4. 把异常对象交给解释器
  5. 进行捕获获得该异常
  6. 寻找相应代码处理
  7. 处理之后程序继续执行

Try…一个except结构

这个里的BaseExeception是异常根类
在这里插入图片描述
这是最简单的结构
在这里插入图片描述
还可以把异常的类型写出来,e是异常类型
在这里插入图片描述
在这里插入图片描述

多个except的情况时,子类放前面,父类放后面,except没有子类父类关系的话,就不需要有先后关系。
在这里插入图片描述

在这里插入图片描述
else语句不是必须的
在这里插入图片描述
这里f找不到文件报错,然后进入except,然后进入finally

在这里插入图片描述
进入finally里的f.close()依然报错因为找不到文件,应该再加一个except来完善,使得程序可以继续往下走
在这里插入图片描述

常见异常的解决

一般我们不把return放到异常处理的结构种,而是放到方法最后。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

with上下文管理

可以用with来释放,不需要非要用finally,不能取代try。。except。。 fianlly
with可以
在这里插入图片描述
三行就可以搞定释放文件
在这里插入图片描述

## traceback模块
import traceback
try:
    print("step1")
    num = 1/0
except:
    traceback.print_exc() #traceback模块详细打印实际error情况   

自定义异常类

class AgeError(Exception): #先让AgeError继承Exception
    def __init__(self,errorInfo): #建立构造器
    	Exception.__init__(self) #调用父类构造器
        self.errorInfo = errorInfo #给我们的类加上属性
    def __str__(self):
        return "年龄错误!"
####################测试代码#########################
if __name__ == "__main__":  #如果True,则模块作为独立文件运行, 可以执行测试代码
    age = int(input("输入一个年龄:"))
    if age<1 or age>150:
        raise AgeError(age)
    else:
        print("正常的年龄:",age)

pycharm开发环境的调试

设置断点
点debug进入在这里插入图片描述
MainThread是线程,底下的是方法
在这里插入图片描述
这里在aa()断点使用step over会使得def aa():下每一行都运行 知道全部运完
这里在aa()断点使用step in的话就每按一次 往下跑一行
这里在aa()断点使用step out按一下就可以把剩下步骤跑完然后跳出def aa 然后继续往下执行在这里插入图片描述
创建一个观察器

假如我要观察 num2的变量 我就在这一栏里输入他

在这里插入图片描述
在这里插入图片描述
运行到光标处,run to cursor (把光标也当作断点)


本文链接: http://www.dtmao.cc/news_show_400087.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?