# 1、面向对象不是所有的情况都适用
# 2、面向对象编程
# a.定义类
# class Foo:
# def 方法1(self,bb):
# b.根据类创建对象(创建) # 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') #存取游戏的进度 #面向对象编程之继承 # 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() #其中的animals叫做基类,dog叫做派生类,派生类可以继承基类的属性和方法
# 如果基类和派生类中有相同的属性或者方法的时候,则默认找派生类中的属性或者方法
#基类不能继承派生类的方法或者属性
#在java和c#中一个子类只能继承一个父类,但在python中,一个派生类可以继承多个基类例如:
#class dog(animals,shengwu):
# 如果继承多个,并且每一个都有共同的属性或者方法,那么优先级是,自己,左,右 # 总结:
# 一、反射
# 字符串的形式导入模块__import__
# 字符串的形式从模块中找方法getattr\hasattr()\delattr()\setattr()
# __import__("lib.bb.py",fromlist=True)
# 二、面向对象
# 类()=>__init__,构造方法
# 继承:python支持多继承,而java和c#中并不支持
# 多态: #面向对象的进阶
# 成员
# 成员修饰符
# 面相对象中一些特殊的方法 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)#这种方法来调用父类的调用的方法 #类后面加括号自动执行
#数据初始化
#a=Animals()
c=Cat()
print(c.__dict__)
#
#
# 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 #反射
#以字符串的形式去对象(模块)中操作其成员
#反射:类,只能找类里的成员
#r=hasattr(Foo,"show111")
#print(r)
#反射:对象,既可以找对象,找类的成员 # 一、面向对象的进阶
# 成员
# #通过类访问有:静态字段
# #通过对象访问:普通字段
# 成员修饰符
# 面向对象中一些常用特殊的方法 # 知识梳理
# 三大特性:封装、继承、多态
# 成员:
# 字段 静态字段、普通字段
# 方法 静态方法、类方法、普通方法
# 特性 普通特性 #成员修饰符
#即__sx,把sx定义成私有的字段
#即使子类也不能访问父类的私有字段
#python里特殊的
# 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'] #************************ #异常处理
#基本的异常处理
# inp=input("请输入内容:")
# try:
# num = int(inp)
# print(num)
# except Exception as e:
# print("转换失败")
#异常的完整结构 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. php项目命名规范

    命名规范 ThinkPHP5遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范: 目录和文件 目录使用小写+下划线: 类库.函数文件统一以.php为后缀: 类的文件名均以命名空间定义,并 ...

  2. iOS 开发 Tips

    1.MVVM 的优点 MVVM 兼容 MVC,可以先创建一个简单的 View Model,再慢慢迁移. MVVM 使得 app 更容易测试,因为 View Model 部分不涉及 UI. MVVM 最 ...

  3. algs4 使用 DrJava 编写 Hello World on Windows

    前阶段读了 Yinwang 的博客, 对 Scheme and Lisp 产生了很大的兴趣, 用 学生模式的  DrRacket IDE一步一步开始实现 How to Design Programs. ...

  4. Java实训作业1

    1.编写程序:声明一个整型变量a,并赋初值5,在程序中判断a是奇数还是偶数,然后输出判断的结果 2.编写程序:从键盘输入圆的半径,计算圆的面积并输出. 3.编写程序:实现一个数字加密器.运行时输入加密 ...

  5. CORS:source,princple,implimentation in Spring

    CORS = Cross-Origin Resource Sharing          一种跨域访问技术 什么是 Origin 要理解CORS,首先得理解什么是 “Origin”.参见RFC645 ...

  6. CSS scroll-behavior和JS scrollIntoView让页面滚动平滑

    转自 https://www.zhangxinxu.com/wordpress/2018/10/scroll-behavior-scrollintoview-%E5%B9%B3%E6%BB%91%E6 ...

  7. 合并K个排序链表(java实现)

    题目: 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [   1->4->5,   1->3->4,   2->6 ] 输出: ...

  8. Openstack中keystone与外部LDAP Server的集成

    openstack中keystone鉴权的用户user和password信息,通常保存在mysql数据库的keystone库: 表local_user和表password: keystone也支持外部 ...

  9. linux shell 脚本 svn自动更新项目并且打包 、发布、备份

    这里先准备一个配置文件,用于保存svn地址.目的路径.用户名跟密码 配置文件名问:toolConfig.properties #svn地址 svnAddress=https://192.168.1.2 ...

  10. 什么是卷积convolution

    定义 卷积是两个变量在某范围内相乘后求和的结果.如果卷积的变量是序列x(n)和h(n),则卷积的结果 , 其中星号*表示卷积. 当时序n=0时,序列h(-i)是h(i)的时序i取反的结果:时序取反使得 ...