# 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. Unity入门一,什么是GameObject,MonoBehaviour

    Unity入门一,什么是GameObject,MonoBehaviour GameObject和Component Unity是一个Component-Based的引擎,所有物体都是GameObjec ...

  2. self sqflite sample =======================

    import 'package:path_provider/path_provider.dart'; import 'dart:async'; import 'package:flutter/mate ...

  3. dataguard从库移动数据文件

    ------------方法1从库移动数据文件路径方法1--------------将表空间offline的方法不行 1.退出日志应用alter database recover managed st ...

  4. Bootstrap各种进度条的实例讲解

    本章将讲解 Bootstrap 进度条.在本教程中,您将看到如何使用bootstrap教程.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Interne ...

  5. 错误模块“AspNetCoreModuleV2"解决

    如图 HTTP 错误 500.21 - Internal Server Error 处理程序"aspNetCore"在其模块列表中有一个错误模块"AspNetCoreMo ...

  6. jieba库和好玩的词云

    首先,通过pip3 install jieba安装jieba库,随后在网上下载<斗破>. 代码如下: import jieba.analyse path = '小说路径' fp = ope ...

  7. SQLServer 2008 R2查看字段约束

    SQLServer 2008 R2 删除字段前检查字段的约束: select a.name,b.name as cname from syscolumns a left join sysobjects ...

  8. Spark Standalone cluster try

    Spark Standalone cluster node*-- stop firewalldsystemctl stop firewalldsystemctl disable firewalld-- ...

  9. Linux源码包安装程序

    ★安装OS时,建议提前安装开发组件 CentOS 6:Development Tools.Server Platform DevelopmentCentOS 7:Development Tools.D ...

  10. python kline

    # -*- coding: utf-8 -*- # Qt相关和十字光标 from qtpy.QtGui import * from qtpy.QtCore import * from qtpy imp ...