python面向对象之:类成员 异常处理
时间:2019-08-19
本文章向大家介绍python面向对象之:类成员 异常处理,主要包括python面向对象之:类成员 异常处理使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
细分类的组成成员
静态变量(静态字段)
方法部分
class A:
company_name = '老男孩教育' # 静态变量(静态字段)
__iphone = '1353333xxxx' # 私有静态变量(私有静态字段)
def __init__(self,name,age): #特殊方法
self.name = name #对象属性(普通字段)
self.__age = age # 私有对象属性(私有普通字段)
def func1(self): # 普通方法
pass
def __func(self): #私有方法
print(666)
@classmethod # 类方法
def class_func(cls):
""" 定义类方法,至少有一个cls参数 """
print('类方法')
@staticmethod #静态方法
def static_func():
""" 定义静态方法 ,无默认参数"""
print('静态方法')
@property # 属性
def prop(self):
pass
类的私有成员
# 类中的私有成员: 私有类的静态属性, 私有对象属性,私有方法
# 对于类的公有静态属性,类的外部,类的内部,派生类都可以访问.
# 私有静态属性: 类外部不能访问,类内部可以访问 ,派生类不可访问
# 对象的私有属性# 类的内部可以使用 ,类的外部不能访问 ,派生类中也不可访问
# 如果想设定一些私有的或者是不想让类外面用到,密码,加密方式,等设置成私有成员.
# 拓展: 私有成员除了在类内部,当真访问不到么?
# python中所有的私有成员: 就是在私有成员前面加上 _类名而已.
# print(A._A__girlnum) # 千万不要这么去访问!!!
类方法与静态方法
# 类方法
# @classmethod # 类方法: 由类名直接调用的方法,他会自动的将类名传给cls
# 对象也可以调用类方法,但是会自动将其从属于的类名传给cls
# @classmethod静态方法: 不依赖于类,也不依赖于对象,他就是一个普通的函数放置于类中是结构更加清晰与合理.
属性
# 我们要让类方法伪装成属性,虽然在代码级别没有提升,但是看起来更合理.
# @property
# def aaa(self):
# print('get的时候运行我啊')
# @aaa.setter
# def aaa(self,v):
# print('修改的时候执行我')
# @aaa.deleter
# def aaa(self):
# print('删除的时候执行我')
isinstance issubclass
# isinstance(obj,N): 判断 obj对象 是由N类(N的派生类)实例化的对象 返回 True.
# issubclass(M,N) 判断是M类是N类的子孙.
# type 到底是什么?
# type 元类 python中一切皆对象 , 一个类也是一个对象.
# 么这个(类)对象肯定是由类实例化出来的.
# python中你创建的所有类,以及大部分list str等等这些类,都是从type元类实例化得来的.
# python中继承object类都是新式类.
# object 也是由type元类实例化得来的.
# type
异常处理
# 什么叫异常?
# 你的程序出现中断,飘红,致使你的整个项目中断了.
# 语法错误.
# 语法错误就不应该现在你的代码中.
# 逻辑错误:
# 我们用 用if进行异常处理
# try
# 单分支
# 多分支
# 及时解决异常,避免程序中断.
# 程序的分流.
# 第四种 万能 + 多分支
# 异常处理其他成员
# finally: # 在整个程序终止之前,执行finally 用于文件操作关闭文件句柄
# 主动抛出异常: 为什么要有
# raise Exception('fdkslafjdslkf')
# 断言:
# assert 条件 # 源码上assert.
# assert 1 == 2
# print(11)
# print(22)
# print(33)
# 自定义异常(了解)
class Connection(BaseException):
def __init__(self,msg):
self.msg = msg
raise Connection('触发了连接异常')
# raise Connection('触发了连接异常')
# 异常处理总结:
# 异常处理不能经常使用:异常处理耗费性能.有些错误是需要进行分流使用.代码的可读性变差.
# 关键节点使用.
# 万能异常 Exception as e: 可以起别名
# 什么时候用万能异常,什么时候用多分支?
#如果你只是想把这个异常处理掉,让程序继续执行. 万能异常.
# 如果出现了异常,你是想根据不同的异常执行不同的逻辑流程,你要采取多分支.
原文地址:https://www.cnblogs.com/saoqiang/p/11377183.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法