1. # 1、面向对象不是所有的情况都适用
    # 2、面向对象编程
    # a.定义类
    # class Foo:
    # def 方法1(self,bb):
    # b.根据类创建对象(创建)
  2.  
  3. # class Person():
    # def __init__(self,name,age):
    # print(name)
    # #print(self.name)
    # self.Name=name
    # self.Age=age
    # def show(self):
    # print("姓名:%s,年龄:%d"%(self.Name,self.Age))
    #
    # ol=Person("guo",23)
    # ol.show()
    # #**************
    # import pickle
    #
    # ret=pickle.load(open('文件名'),'rb')
    # ret=pickle.load(open('文件名'),'wb')
  4.  
  5. #存取游戏的进度
  6.  
  7. #面向对象编程之继承
  8.  
  9. # class animals():
    # def he(self):
    # print(self.name)
    # class dog(animals):
    # def __init__(self,name):
    # self.name=name
    # def show(self):
    # print(self.name+'吃屎')
    #
    # do=dog("师傅")
    # do.he()
    # do.show()
  10.  
  11. #其中的animals叫做基类,dog叫做派生类,派生类可以继承基类的属性和方法
    # 如果基类和派生类中有相同的属性或者方法的时候,则默认找派生类中的属性或者方法
    #基类不能继承派生类的方法或者属性
    #在java和c#中一个子类只能继承一个父类,但在python中,一个派生类可以继承多个基类例如:
    #class dog(animals,shengwu):
    # 如果继承多个,并且每一个都有共同的属性或者方法,那么优先级是,自己,左,右
  12.  
  13. # 总结:
    # 一、反射
    # 字符串的形式导入模块__import__
    # 字符串的形式从模块中找方法getattr\hasattr()\delattr()\setattr()
    # __import__("lib.bb.py",fromlist=True)
    # 二、面向对象
    # 类()=>__init__,构造方法
    # 继承:python支持多继承,而java和c#中并不支持
    # 多态:
  14.  
  15. #面向对象的进阶
    # 成员
    # 成员修饰符
    # 面相对象中一些特殊的方法
  16.  
  17. class Animals:
    def __init__(self):
    print("a的构造方法")
    self.ty="动物"
    class Cat(Animals):
    def __init__(self):
    print("B的构造方法")
    self.n="猫"
    # self.ty="动物"
    #执行父类的构造方法
    super(Cat,self).__init__()#和java一样执行父类的构造方法
    #也可以用
    Animals.__init__(self)#这种方法来调用父类的调用的方法
  18.  
  19. #类后面加括号自动执行
    #数据初始化
    #a=Animals()
    c=Cat()
    print(c.__dict__)
  1. #
    #
    # class Foo:
    # age=20
    # #则age叫做静态字段,存在类中
    # def __init__(self,name):
    # #name叫做普通字段,存在对象中
    # self.name=name
    # #show 叫做普通方法,存在类中
    # def show(self):
    # print("show")
    # #类方法只能通过类进行访问
    # @classmethod
    # def xxoo(self):
    # print("xxoo")
    #
    # #静态方法
    # @staticmethod
    # def xo():
    # print("xo")
    # #特性
    # def stat(self):
    # return "这是一个测试"
    # @property
    # def end(self):
    # return "这里是结束"
    # @end.setter
    # def end(self,value):
    # print(value)
    # c=Foo('alex')
    # r=hasattr(c,'show')
    # print(r)
    # Foo.xo()#访问静态方法(通常用类进行访问,不要用对象进行访问)静态方法存在的意义,不用创建对象就可以访问这个方法
    # ret=c.stat()
    # print(c.end)#加property把原来用创建对象的方法访问变成这样访问,并且不能加参数,可以理解为将方法伪装成一个字段
    #那么,字段可以设置,特性是这样设置呢,如下
    # print(c.end)
    # c.end=1234
  2.  
  3. #反射
    #以字符串的形式去对象(模块)中操作其成员
    #反射:类,只能找类里的成员
    #r=hasattr(Foo,"show111")
    #print(r)
    #反射:对象,既可以找对象,找类的成员
  4.  
  5. # 一、面向对象的进阶
    # 成员
    # #通过类访问有:静态字段
    # #通过对象访问:普通字段
    # 成员修饰符
    # 面向对象中一些常用特殊的方法
  6.  
  7. # 知识梳理
    # 三大特性:封装、继承、多态
    # 成员:
    # 字段 静态字段、普通字段
    # 方法 静态方法、类方法、普通方法
    # 特性 普通特性
  8.  
  9. #成员修饰符
    #即__sx,把sx定义成私有的字段
    #即使子类也不能访问父类的私有字段
    #python里特殊的
  1. # class Foo:
    # def __init__(self):
    # print("init")
    # def __call__(self, *args, **kwargs):
    # print("call")
    # def __getitem__(self, item):
    # print(item)
    # def __setitem__(self, key, value):
    # print(key,value)
    # def __delitem__(self, key):
    # print(key)
    # r=Foo()#执行__init__
    # r()#执行__call__方法
    # Foo()()
    # r["dkfjladk"]#执行__getitem__方法
    # r["xxx"]=123#执行__setitem__方法
    # del r['ooo']
    """r[1:3]
    del r[1:3]自己测试的模块"""
    # dic=dict(k1=123,k2=456)
    # print(dic['k1'])
    # del dic['k2']
  2.  
  3. #************************
  4.  
  5. #异常处理
    #基本的异常处理
    # inp=input("请输入内容:")
    # try:
    # num = int(inp)
    # print(num)
    # except Exception as e:
    # print("转换失败")
    #异常的完整结构
  6.  
  7. try:
    #主代码模块
    pass
    except Exception as e:
    print(e)
    #异常时,执行该模块
    else:
    #主代码执行完之后,执行该块
    pass
    finally:
    #无论异常与否,最终执行该模块
    pass
    #这个异常是解释器触发的异常
    #下面这个列子是主动触发的异常信息
    # try:
    # print("234")
    # raise Exception("错了")
    # except Exception as e:
    # print(e)

python反射和面向对象的知识并简述基本的异常的更多相关文章

  1. 面向对象相关概念与在python中的面向对象知识(魔法方法+反射+元类+鸭子类型)

    面向对象知识 封装 封装的原理是,其成员变量代表对象的属性,方法代表这个对象的动作真正的封装是,经过深入的思考,做出良好的抽象(设计属性时用到),给出“完整且最小”的接口,并使得内部细节可以对外透明( ...

  2. python基础,函数,面向对象,模块练习

    ---恢复内容开始--- python基础,函数,面向对象,模块练习 1,简述python中基本数据类型中表示False的数据有哪些? #  [] {} () None 0 2,位和字节的关系? # ...

  3. Python全栈--9 __import__ 反射和面向对象基础 self 封装 继承(多继承的顺序) 多态

    一.反射 python中的反射功能是由以下四个内置函数提供:hasattr.getattr.setattr.delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员.获取成员.设置成员.删 ...

  4. python基础-9__import__ 反射和面向对象基础 self 封装 继承(多继承顺序) 多态

    一 反射 python中的反射功能是由以下四个内置函数提供:hasattr.getattr.setattr.delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员.获取成员.设置成员.删 ...

  5. Python 面向对象基础知识

    面向对象基础知识 1.什么是面向对象编程? - 以前使用函数 - 类 + 对象 2.什么是类什么是对象,又有什么关系? class 类: def 函数1(): pass def 函数2(): pass ...

  6. python基础之面向对象高级编程

    面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个"函数"供使用(可以讲多函数中公用的变量封装到对象中) ...

  7. python高级之面向对象高级

    python高级之面向对象高级 本节内容 成员修饰符 特殊成员 类与对象 异常处理 反射/自省 单例模式 1.成员修饰符 python的类中只有私有成员和公有成员两种,不像c++中的类有公有成员(pu ...

  8. 第五篇:python高级之面向对象高级

    python高级之面向对象高级   python高级之面向对象高级 本节内容 成员修饰符 特殊成员 类与对象 异常处理 反射/自省 单例模式 1.成员修饰符 python的类中只有私有成员和公有成员两 ...

  9. Python基础之面向对象(初级篇)

    概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...

随机推荐

  1. WebSocket 的理解

    WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术.依靠这种技术可以实现客户端和服务器端的长连接,双向实时通信. 它的最大特点就是,服务器可以主动向客户端推送信息,客 ...

  2. 浅谈Tarjan算法

    从这里开始 预备知识 两个数组 Tarjan 算法的应用 求割点和割边 求点-双连通分量 求边-双连通分量 求强连通分量 预备知识 设无向图$G_{0} = (V_{0}, E_{0})$,其中$V_ ...

  3. php登录注册

    php 登录注册 注册代码:register.php <style type="text/css"> form{ width:300px; background-col ...

  4. XSS漏洞学习笔记

    XSS漏洞学习 简介 xss漏洞,英文名为cross site scripting. xss最大的特点就是能注入恶意的代码到用户浏览器的网页上,从而达到劫持用户会话的目的. 说白了就是想尽办法让你加载 ...

  5. video 自动循环播放

    video 只加autoplay并不能自动播放,需要再加上muted   <video controls="controls" autoplay loop muted> ...

  6. node中redis重连

    项目node中用到redis ,做了的moudle,但是有个问题,两台redis,一台挂了,redis能自动切换,我的项目却不会自动重连: 查了资料,redis本身是实现了重连机制啊,为什么不自动重连 ...

  7. CSS布局(圣杯、双飞翼、flex)

    圣杯布局(float + 负margin + padding + position) <!DOCTYPE html> <html> <head> <meta ...

  8. efk学习整理

    概念 Logstash 数据收集处理引擎.支持动态的从各种数据源搜集数据,并对数据进行过滤.分析.丰富.统一格式等操作,然后存储以供后续使用. kibana 可视化化平台.它能够搜索.展示存储在 El ...

  9. 日常记Bug

    前记:后端写代码应该对数据的交互更加掌握,不要被编码.数据模型细节坑住 Unicode编码.Django数据迁移偶尔产生的不稳定 处理细项工资记录模型: class TeachRoll(models. ...

  10. Linux中python3,django,redis以及mariab的安装

    1. Linux中python3,django,redis以及mariab的安装 2. CentOS下编译安装python3 编译安装python3.6的步骤 1.下载python3源码包 wget ...